タグ付けされた質問 「code-golf」

コードゴルフは、ソースコードの最小バイトで特定の問題を解決するための競争です。

12
多項式のシンボリック微分
シンボリック識別1:ゴーン・シーフィッシン 仕事 stdin(1 <deg(p)<128)からxの多項式を取り込んで微分するプログラムを作成します。入力多項式は、次の形式の文字列になります。 "a + bx + cx^2 + dx^3 +" ... 各項の係数は整数です(-128 <a <128)。各用語は、1つのスペース、+、および別のスペースで区切られます。線形項と定数項は上記のように表示されます(つまり、no x^0またはx^1)。用語は次数の昇順で表示され、係数がゼロの累乗は省略されます。係数が1または-1のすべての項は、その係数を明示的に表示します。 出力はまったく同じ形式である必要があります。出力の係数は127 * 127 == 16129と同じくらい大きいことに注意してください。 例 "3 + 1x + 2x^2" ==> "1 + 4x" "1 + 2x + -3x^2 + 17x^17 + -1x^107" ==> "2 + -6x + 289x^16 + -107x^106" "17x …

5
お気に入りのMinecraftツールをゴルフ
でマインクラフト、デフォルト項目のテクスチャは、すべての彼らはのための理想的な思われてしまう合理的にシンプルな16×16ピクセルの画像であるゴルフ。 :以下はMinecraftの中に5「コア」ダイヤモンド工具のテクスチャに簡略化されているつるはし、シャベル、斧、剣、と鍬を。 表示される画像は、詳細を示すために拡大されています。画像をクリックして、正しいサイズの16×16ピクセルバージョンを表示します。 ゴルフを簡単にするために、オリジナルからそれぞれを変更して、同じ24ビットRGBの5色のみを使用するようにしました。 R=75 G=82 B=73 背景に。 R=51 G=235 B=203 ダイヤモンドツールヘッド用。 R=14 G=63 B=54 ダイヤモンドの輪郭のため。 R=137 G=103 B=39 木製ハンドルコア用。 R=40 G=30 B=11 木製ハンドルのアウトライン用。 5のうち、お好きなツールを選択し、(のような任意の一般的なロスレストゥルーカラー画像形式でその簡略化さ16×16ピクセルのテクスチャを出力するプログラム書き込みbpm、png、ppmなど、)。 したがって、たとえば、aを選択した場合、このイメージを出力するプログラムを作成します。 何も入力しないでください。また、Web接続は必要ありません。画像は、選択した名前のファイルとして出力するか、生の画像ファイルデータをstdoutに出力するか、単に画像を表示することができます。 5つの画像のいずれかを選択するだけです。5つの画像のいずれかを最も少ないバイト数で出力するプログラムが勝者です。 複数の画像のプログラムを作成できますが、最小バイト数の画像のみがスコアにカウントされます。同点の場合、最も投票数の多い投稿が勝者となります。 PPCGを楽しんでMinecraftをプレイする場合は、試用版のMinecraftサーバーに参加してください。ただ、中に尋ねる専用のチャットルーム。

2
最悪の場合のマンハッタンの除外
想像してWによるHのトロイダル状ラップの正方形のグリッドを。アイテムは次のようにグリッドに配置されます。 最初のアイテムは任意の正方形に配置できますが、後続のアイテムは前のアイテムのマンハッタン距離 R(範囲Rのフォンノイマン近傍とも呼ばれます)内に配置することはできません。慎重に位置を選択すると、有効な位置がなくなる前に多数のアイテムをグリッドに合わせることができます。ただし、代わりに反対の目的を検討してください。配置できるアイテムの最小数はいくらですか? 以下は、半径5の除外ゾーンです。 ここに別の半径5の除外ゾーンがあります。今回はエッジに近いため、ラッピングの動作が明らかです。 入力 3つの整数: W:グリッドの幅(正の整数) H:グリッドの高さ(正の整数) R:除外ゾーンの半径(非負の整数) 出力 整数N。これは、配置できるアイテムの最小数であり、それ以上の有効な配置を妨げます。 詳細 半径がゼロの場合、除外ゾーンは1平方(アイテムが配置されたゾーン)になります。 Nの半径は、N直交ステップで到達できるゾーンを除外します(エッジがトロイド状にラップすることを思い出してください)。 あなたのコードは、R = 0の些細なケースで機能する必要がありますが、W = 0またはH = 0で機能する必要はありません。 コードでは、R > WまたはR > Hの場合も処理する必要があります。 制限時間とテストケース コードはすべてのテストケースを処理できなければならず、各テストケースは5分以内に完了する必要があります。これは簡単なはずです(JavaScriptソリューションの例では、テストケースごとに数秒かかります)。時間制限は、主に極端なブルートフォースアプローチを除外することです。例のアプローチは、まだかなり強引です。 コードが1台のマシンで5分以内に完了しても、十分に近い別のマシンでは完了しない場合。 フォーム入力のテストケース:出力としてW H R : N 5 4 4 : 1 5 4 3 : 2 5 4 2 : 2 …

6
ソースコードの自撮り
目的: 教祖はかつて、完璧なコードの自撮りは、左上隅から斜めに撮影するのがベストだと言っていました。コードのセルフィーは、ほとんどQuineに似ていますが、時計回りに45度回転します。あなたの使命は、コードの自撮りを出力するプログラムをコーディングすることです。 ルール: 任意のプログラミング言語を使用できます。 あなたのプログラムは、ファイル、ファイル名、ネットワーク、その他から何も入力してはいけません。 必須の基準: Selfiesは動機と背景に関するものであるため、空白(および改行などの表示されないコンテンツ)は文字カウントの一部としてカウントされません。すべての非表示文字は正しい45度回転位置に制限されませんが、すべての可視文字は正しい45度回転位置に出力されるように制限されます。通常の自撮りのカラーパレットと同様に、コードの自撮りには必須であるのは、これらの文字のうち少なくとも16個が含まれていることです:{a-zA-Z0-9} 例: この例が有効なソースコードである場合: Output abcd Output efgh Output ijkl Output mnop サンプルコードはこれを出力するはずです: O O u O u t O u t p u t p u t p u t p u t u t a t e b i f c m j …
20 code-golf  quine 

12
整数としての括弧と括弧の評価
()[]これらのポイントを満たす4文字の文字列を取り込むプログラムを作成します。 すべての左括弧(には対応する右括弧があり)ます。 すべての左角括弧に[は、対応する右角括弧があり]ます。 括弧とブラケットの一致するペアは重複しません。たとえば[(])、一致するかっこが一致するかっこに完全に含まれておらず、逆も同様であるため、無効です。 最初と最後の文字は、一致する括弧または括弧のペアです。したがって([]([]))、[[]([])]有効ですが、無効です[]([])。 (入力形式の文法は<input> ::= [<input>*] | (<input>*)です。) 一致する括弧と括弧の各ペアは、負でない整数に評価されます。 一致する括弧内のペアの値はすべて合計されます。空の一致に()はvalueがあります0。 一致する括弧内のペアの値はすべて乗算されます。空の一致に[]はvalueがあります1。 (1つの数値の合計または積は、その同じ数値です。) たとえば、次の([](())([][])[()][([[][]][][])([][])])ように分類して評価できます9。 ([](())([][])[()][([[][]][][])([][])]) <input> (1 (0 )(1 1 )[0 ][([1 1 ]1 1 )(1 1 )]) <handle empty matches> (1 0 2 0 [(1 1 1 )2 ]) <next level of matches> (1 0 2 0 [3 …

1
数字のセットから最も高いタワー
編集:質問の最後のバウンティパズル。 1桁の数字のセットが与えられたら、それらが構築できるタワーの高さを決定する必要があります。 数字は、立つことができる地面レベルの水平面に住んでいます。複数桁の数字と混同したい数字はありません。そのため、常に両側に空のスペースがあります。 4 2 1 9 6 8 数字を別の数字の上に置くことができます。 2 6 または、対角線下にある他の2つでサポートできます。 9 5 8 下部は、上部がサポートする重量(ある場合)と、上部の重量(常に1)をサポートする必要があります。サポーターが2人いる場合、サポーターは上部のサポーターの総重量を均等に分割します(50%-50%)。 すべての数字の重みは、その値に関係なく1です。 1桁で他の2桁をサポートする場合、対応する重みの合計をサポートできる必要があります。数字は最大でその数値をサポートできます。 いくつかの有効な塔(高さ4、3および5): 0 7 1 5 1 1 1 9 supports a total weight of 1.5 = (1+1/2)/2 + (1+1/2)/2 2 5 4 5 5 3 5 9 5 5 6 3 …
20 code-golf 

16
文字列の中で最も出現するペアの文字を見つけるプログラムを書く
プログラムは、最もペアになっている文字を出力する必要があります。たとえば、プログラムに次の文字列が与えられた場合: "Sally's friend Bobby searched for seashells." 2回発生するLため"ll"、出力する必要があり、他のペアよりも頻繁に発生し"bb"ます。 ルール: 複数の文字が出現のための第一位を持っている場合は、アルファベット順にすべてのそれらの出力(例えば"Sally's friends Jimmy and Bobby rummaged for seashells."出力すべき両方LのAND M[または"LM"あなたが喜ば場合]、彼らはより頻繁に他のペアよりも発生し、両方のため。) 3倍、4倍などの文字は1つのペアとしてカウントされます(たとえば"lll"、in "willless"は1つのペアのみとしてカウントされLます)。 文字のペアは1ワードである必要があります(たとえば、"Sally's sociable friends Sammy and Bobby searched for fabulous seashells."出力する必要があります。出現回数がであるにもかかわらず、スペースで区切られているためではLありません)。S"ss""ll" 英語のアルファベットの文字のみを数える 大文字と小文字は区別されません(たとえば"Ss"、"SS"or と同じ"ss"で、すべてが1つのペアとしてカウントされSます)。 どこからでも入力を読むことができます。最短のコードが優先されます。

3
島(および川)の地図
前書き 何世紀にもわたって、マッピングされたことのない特定の川がありました。地図製作者のギルドは川の地図を作成したいと考えていますが、成功することはありませんでした-何らかの理由で、川の地図を作成するために送った地図製作者はすべて、この地域の野生動物に食われています。別のアプローチが必要です。 入力説明 領域は、長さmと幅のセルの長方形のグリッドですn。左下のセルはになり0,0、右上のセルはになりますm-1,n-1。mそしてn、タプルとして入力で提供されますm,n。 長距離の地理探査技術を使用することにより、川周辺の島の位置が特定されました。島のサイズ(つまり、島が占めるセルの数)も特定されていますが、形状は特定されていません。我々は、タプルにこの情報を提供する島の大きさであり、そしてその島の一つの特定のセルのxとyの位置です。入力内の各タプルはスペースで区切られているため、入力例を次に示します。s,x,ysxy 7,7 2,0,0 2,3,1 2,6,1 2,4,3 2,2,4 8,0,6 1,2,6 3,4,6 より明確に説明するために、グラフ上の入力を次に示します。 y 6|8 1 3 5| 4| 2 3| 2 2| 1| 2 2 0|2 ======= 0123456 x 出力の説明 ASCII文字を使用して領域の一部を表すマップを出力します。各セルは#(土地)または.(水)のいずれかになります。マップは次のルールに従う必要があります。 定義。島は、川のセルおよび/または地域の境界によって完全に囲まれている、陸のセルの直交的に隣接したグループです。 定義。川、土地細胞および/または領域の境界によって完全に囲まれ、水細胞の直交隣接基でありそして「湖」(水細胞の2×2の領域)を含みません。 ルール。マップには正確に1つの川が含まれます。 ルール。入力内の各番号付きセルは、正確にsセルを含むアイランドの一部でなければなりません。 ルール。マップ内のすべての島には、入力内の番号付きセルの1つが正確に含まれます。 ルール。すべての入力に対して単一の一意のマップが存在します。 入力例の出力は次のとおりです。 #.#.##. #....#. #.##... ##..##. ###.... ...##.# ##....# ここに別の入力と出力があります。 入力: …

3
これは本当のツリーですか?
入力として文字列を受け取り、入力がASCIIツリーの場合は出力または返すプログラムまたは関数を作成する必要があります。 _ \/ / \_/ | | ASCIIツリーは文字/ \ | _ spacesとで構成されますnewlines。 非空白文字は、セルの2つのエッジポイントをラインセグメントで接続します。 / 左下隅と右上隅を接続します \ 右下隅と左上隅を接続します | 下端と上端の中間点を接続します _ 左下隅と右下隅、および下端の中間点を接続します (なお、この手段|のみで接続することができます|か_ではなくて/か\。) 次の規則が適用される場合、ASCIIピクチャはツリーと呼ばれます。 正確に1つの文字の正確に1つのポイント(ルート)が最後の行の下端に接触します。 次の方法で、任意の線セグメントの任意のポイントに到達できます。 ルートから始まる 線分のみを使用する 下方向には決して行かない(横方向にも下がらない) 入力 文字列の文字から成る/ \ | _ spaceとnewline少なくとも1つの非空白文字を含みます。 次の2つの入力形式から選択できます。 ツリーの周りに不要な空白はありません(例で見られます)。 すべての行を同じ長さにするための行の右側のスペースを除いて、ツリーの周りに不要な空白はありません(例にあります)。 末尾の改行はオプションです。 出力 入力がasciiツリーの場合、一貫した真理値。 入力がasciiツリーでない場合、一貫した偽の値。 例 有効なツリー: | _ \/ / \_/ | | …

9
各次元の合計
整数の多次元配列が与えられます。各次元のサイズは固定です(2Dの場合は常に長方形になります)。プログラムは、各ディメンションの合計を計算し、そのディメンションの新しい最後のアイテムとして合計を追加する必要があります。 入力配列と出力配列がAとBであり、A の次元iのサイズがn iであると仮定します。BはAと同じ次元数を持ち、次元iのサイズはn i +1になります。B j 1、j 2、...、j mは、A k 1、k 2、...、k mの合計です。ここで、 kはiは J = iが jの場合、I <= N Iを 0 <k i <= n i j i = n i +1の場合 入力用: [[1 2 3] [4 5 6]] プログラム(または関数)が出力するはずです: [[1 2 3 6] [4 5 6 15] …


4
(やや)dan病な誕生日のパラドックス
バックグラウンド 誕生日のパラドックスは、(ほとんどの人々の)数学的な直感を覆す確率論で人気のある問題です。問題のステートメントは次のとおりです。 与えられたNの人々 、それらの少なくとも2つが同じ誕生日(年を無視)を持っている確率は何ですか。 この問題は通常、うるう日を完全に無視することで簡素化されます。この場合、N = 23の答えは(一般的な例として)P(23)≈0.5072972です。リンクされたウィキペディアの記事は、この確率に到達する方法を説明しています。あるいは、このNumberphileビデオは本当に良い仕事をします。 ただし、この課題に対しては、正しく実行したいので、うるう年を無視しないでください。2月29日を追加する必要があるため、これはやや複雑ですが、この特定の誕生日は他のすべての誕生日よりも少ない可能性があります。 また、完全なうるう年のルールを使用します。 年が400で割り切れる場合は、うるう年です。 それ以外の場合、1年が100で割り切れる場合、うるう年ではありません。 それ以外の場合、1年が4で割り切れる場合はうるう年です。 そうでなければ、it年ではありません。 混乱した?つまり、1700年、1800年、1900年、2100年、2200年、2300年はうるう年ではなく、1600年、2000年、2400年は(4で割り切れる他の年と同様)です。このカレンダーは400年ごとに繰り返され、これらの400年にわたる誕生日の均一な分布を想定します。 N = 23の修正結果は、現在P(23)≈0.5068761です。 チャレンジ 整数1 ≤ N < 100を指定するNと、うるう年の規則を考慮して、少なくとも2人の人が同じ誕生日を持っている確率を決定します。結果は、小数点以下6桁までの精度の浮動小数点数または固定小数点数でなければなりません。末尾のゼロを切り捨てることは許容されます。 プログラムまたは関数を作成し、STDIN(または最も近い代替)、コマンドライン引数または関数引数を介して入力を取得し、STDOUT(または最も近い代替)、関数の戻り値または関数(out)パラメーターを介して結果を出力できます。 ソリューションは、わずか数秒で99の入力すべてに対して出力を生成できる必要があります。これは主に、大量のサンプルを使用するモンテカルロ法を除外するためです。したがって、非常に遅い難解な言語で主に高速で正確なアルゴリズムを使用している場合は、この規則に余裕を持たせます。 テストケース 結果の全表は次のとおりです。 1 => 0.000000 2 => 0.002737 3 => 0.008195 4 => 0.016337 5 => 0.027104 6 => 0.040416 7 => 0.056171 8 => …

3
遮られていない長方形を削除する
この画像は、7つの異なる色の長方形を重ねて作成したものです。 黒と栗色の長方形は遮られていません。つまり、他の長方形はそれらの上にありません。 このような画像を取り込むプログラムを作成し、遮られていない長方形を1つ削除して、結果の画像を出力します。 例 上記のイメージでプログラムを実行し、出力でプログラムを再実行し続けると、次のように進行する可能性があります。 実行1-黒を削除(あずき色だった可能性があります): 実行2-マルーンの削除(選択のみ): 実行3-黄色の削除(選択のみ): 実行4-青の削除(緑だった可能性があります): 実行5-緑の削除(選択のみ): 実行6-ブラウンの削除(選択のみ): 実行7-赤の削除(選択のみ): 追加の実行で同じ白い画像が生成されます。 Stack Exchangeがこれらの画像を損失なく圧縮しないことを願っています。 画像の背景は常に白になり、各長方形は白ではない一意のRGBカラーになります。 画像は常に重複する長方形のセットとして解釈できると想定できます。具体的には、特定の色について、その色が画像の上部に最も近いピクセルがその色の長方形の上端の一部であると想定できます。同じことが下、左、右のエッジにも当てはまります。 たとえば、この画像では、オレンジ色の長方形が古い赤い上端を覆っているため、赤い長方形の上端は黄色の長方形の下端のすぐ下になります。 この画像では、最初に赤い長方形を削除することができます(黒/マルーン/オレンジ/グレーと共に): 下の長方形の順序があいまいな場合、任意の順序を付けることができます。 たとえば、ここの左の画像は中央または右になります。 出力には逆説的な重複があってはなりません(したがって、ペインターのアルゴリズムで作成することは可能です)。したがって、この画像(user23013に感謝)では、オレンジ色の長方形の下に緑色にする必要があります。 さらなる詳細 画像と長方形のサイズは任意です。 長方形は画像の境界線に接する場合があります。 最大256個の3-1の長方形がある場合があります。 入力が完全に白の場合、出力も同様になります。 画像ライブラリを使用できます。 入力は、画像ファイル名または生の画像データである必要があります。stdinまたはコマンドラインから取得できます。 出力は、同じ画像ファイルまたは別の画像ファイルに書き込むか、生のまま標準出力に出力するか、単に表示することができます。 一般的なロスレストゥルーカラー画像ファイル形式はすべて許可されます。 最少バイトの送信が勝ちです。

5
実行時に現在の時刻に最も近い時計の絵文字を返します
私はif/else30分ごとに大きな条件を持つことができますが、より多くの数学とUnicodeベースのソリューションを探しています。 時計の絵文字は次のとおりです。適切なレンダリングサポートがない場合は、以下(同じ順序ではなく、表示と異なる場合があります)またはUnicodeチャート(ページ4)で表示できます。これらはUnicodeコードポイントU + 1F550(CLOCK FACE ONE OCLOCK)からU + 1F567(CLOCK FACE TWELVE-THIRTY)まで。 あなたの課題は、現在のシステム時刻に最も近い文字盤の絵文字をSTDOUTに出力するプログラムを書くことです(AMとPMは同じように扱われるべきです)。たとえば、時間tが[5:15 <t <5:45)の場合、5:30絵文字🕠を表示します。 これはコードゴルフなので、バイト単位の最短コードが優先されます。コードをテストする時間を簡単に指定する方法を含めることができます。 エッジテストケース Time Output Written ---------------------- 11:48 🕛 12:00 3:15 🕞 3:30 9:45 🕙 10:00
20 code-golf  date 

5
二次収束でπを計算する
正数取る関数または完全なプログラムの書き込みnとを行うn2外戻り又はプリント次いで(それはほぼすべての反復で正確な桁数を倍増IE)二次収束を有するπを計算するための反復アルゴリズムのステップを、N、正しい数字(含みます始まり3)。そのようなアルゴリズムの1つにGauss–Legendreアルゴリズムがありますが、必要に応じて別のアルゴリズムを自由に使用できます。 例: 入力1→出力3.1 入力2→出力3.141 入力5→出力3.1415926535897932384626433832795 要件: アルゴリズムの各反復は、加算、減算、乗算、除算、累乗、およびルート(整数指数/度付き)などの一定数の基本演算を実行する必要があります。内部に1つ以上のループが含まれる場合。明確にするために、複素数を含む三角関数とべき乗は基本的な操作ではありません。 アルゴリズムには、一定数の操作が必要な初期化ステップが含まれることが期待されています。 アルゴリズムが2 n個の正しい数字を得るためにさらに1または2回の反復を必要とする場合、n+2ちょうどの代わりに最大反復を実行できますn。 十分に明確ではなかった場合、正しい2 n桁の後、プログラムは他のもの(より正確な数字、間違った数字、シェークスピアの完全な作品など)を印刷してはなりません。 プログラムはn、1〜20以上の値をサポートする必要があります。 あなたのプログラムはn、現代のコンピューターで= 20に1時間以上かかるべきではありません(厳密な規則ではありませんが、合理的なものにしてください)。 プログラムは、アルゴリズムの初期化と最初の反復の後、20を超える正確な数字を取得してはなりません。 プログラムは、自由に利用可能なソフトウェアを使用してLinuxで実行可能である必要があります。 ソースコードはASCII文字のみを使用する必要があります。 得点: 簡単なコードゴルフ、最短のコードが勝ちます。 勝者: 勝者はDigital Traumaです。私はついに彼のコードをn = 20で実行しました(冗談です)。特別賞は、非常に高速なpythonソリューションと異なるアルゴリズムでprimoに贈られます:)
20 code-golf  pi 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.