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

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

7
ドミノのように落ちる
あなたは80文字幅の端末内に住んでいます。あなたは退屈しているので、ドミノをプレイすることにします。いいえ、Scrabbleのように見える退屈な種類ではなく、1時間をかけてそれらを見るためにそれらを設定する楽しい種類です。 ターミナルでは、ドミノは次のようになります。 | upright domino \ left-tilted domino / right-tilted domino __ fallen domino ご存知のように、傾斜したドミノが直立したドミノに触れると、2番目のドミノも傾斜します。唯一の例外は、2つの傾斜したドミノがそれに触れる場合です。 |\ --> \\ /| --> // /|\ --> /|\ この遷移に100ミリ秒かかるように、端末の重力定数を調整します。 傾斜したドミノが別のドミノまたはターミナルの壁に支えられている場合、その旅は終了します。 傾斜ドミノはありません \||||____||||/__ /|\ /\ /|\ __\||||____||||/ (80文字)が移動します。これは、最も外側に傾いた2つのドミノがターミナルの壁でサポートされ、他のすべてが他のドミノでサポートされているためです。 ただし、傾斜方向のスペースが空の場合、ドミノは落下します。 | \\ --> |__\ // | --> /__| ターミナル。重力定数。あなたはポイントを得る... 最後に、左からわずかな風が吹いているので、右に傾いたドミノは左に傾いたドミノよりも速く落下します。 |/ \| --> |__\| 仕事 ターミナルでドミノをプレイするアニメーションを表示するプログラム/関数を作成します。 …

4
SKIコンパイラーの最適化
SKIの計算は、ラムダ式を使用していないラムダ計算の変種です。代わりに、アプリケーションとコンビネータS、K、およびIのみが使用されます。この課題では、あなたの仕事は、SKI用語をβ標準形のラムダ用語に翻訳することです。 入力仕様 入力は、次のテキスト表現のSKI用語です。オプションの末尾の改行を受け取ることを選択できます。入力は、文字で構成されS、K、I、(、及び)で(ABNF形式で)次の文法を満たすsterm開始記号です。 sterm = sterm combinator ; application sterm = combinator ; sterm = '(' sterm ')' ; grouping combinator = 'S' | 'K' | 'I' ; primitives 出力仕様 出力は、次のテキスト表現の自由変数のないラムダ項です。オプションの末尾の改行を出力することもできます。出力はlterm、開始記号であるABNF形式の次の文法を満たします。 lterm = lterm operand ; application lterm = ALPHA '.' lterm ; lambda lterm = operand operand = '(' …

6
千鳥格子パターンを描く
2つの正の整数(幅と高さ)を取り、この25×26テキストグリッドをベースセルとして使用して、これらの寸法でASCIIアート千鳥格子パターンを描くプログラムまたは関数を記述します。 .......#.....#####....... .......##.....#####...... .......###.....#####..... .......####.....####..... .......#####.....###..... .......######.....##..... .......#######.....#..... .......########.......... ####################..... .####################.... ..####################... ...####################.. ....####################. .....#################### #.....##############.#### ##.....#############..### ###....#############...## ####...#############....# #####..#############..... .#####.#############..... ..##################..... ........#####............ .........#####........... ..........#####.......... ...........#####......... ............#####........ したがって、入力が2,1出力の場合は次のようになります。 .......#.....#####..............#.....#####....... .......##.....#####.............##.....#####...... .......###.....#####............###.....#####..... .......####.....####............####.....####..... .......#####.....###............#####.....###..... .......######.....##............######.....##..... .......#######.....#............#######.....#..... .......########.................########.......... ####################.....####################..... .####################.....####################.... ..####################.....####################... ...####################.....####################.. ....####################.....####################. .....####################.....#################### #.....##############.#####.....##############.#### ##.....#############..#####.....#############..### ###....#############...#####....#############...## ####...#############....#####...#############....# #####..#############.....#####..#############..... .#####.#############......#####.#############..... ..##################.......##################..... ........#####....................#####............ …

2
呪文を唱えられますか?
マジック:ザギャザリングでは、メイジ(「プレインズウォーカー」として知られる)は呪文を唱えることによって互いに戦います。呪文のコストはマナです。マナには、白、青、黒、赤、緑の5色があり、それぞれ{W}、{U}、{B}、{R}、{G}として表されます。 呪文のコストはやや複雑です。コストは、次の任意の組み合わせにすることができます。 1つまたは複数の色 {X}として表される1つ以上の無色、Xは正の整数 {Y / Z}で表される1つ以上のハイブリッド。YとZは色(5文字のいずれかで表される)または無色で、正の整数で表されます。 呪文を唱えようとするとき、次の規則が適用されます。 コスト内の色は、その色の1マナで満たされる必要があります 無色のコスト{X}は、どの色のXマナでも満たすことができます ハイブリッドコスト{Y / Z}は、YまたはZのいずれかを満たすことで満たされます。 ブレースはネストされないことに注意してください YとZはハイブリッドではありません マナのプールとコストが与えられると、そのプール内のマナがコストを満たすことができる場合にのみtrue(または何らかの真理値)を出力または返すプログラムまたは関数を作成します。 マナプールは、次の形式の空でない文字列です。 Color1,Color2,Color3,...,Colorn-1,Colorn コストは、次の形式の空でない文字列です。 Cost1,Cost2,Cost3,...,Costn-1,Costn 例 フォーマットPool Cost -> ExpectedOutput(プールとコストの間にスペースがあります): {R},{R},{G},{B},{R} {4},{R} -> True {G},{G},{G},{G},{W},{W},{W} {2/W},{2/U},{2/B},{2/R},{2/G} -> False {G},{G},{R} {R/G},{G/B},{B/R} -> True {R},{R},{R},{G} {1},{G},{2/G}-> True {R} {R},{R},{R},{R},{R} -> False {W},{R},{R} {2/W},{W/B} -> True {U},{U} {1} …

14
ユークリッドアルゴリズム(最大公約数を見つけるため)
チャレンジ 2つの入力の整数を取るプログラムや関数を書いて、iそしてj、それらの最大公約数を出力します。ユークリッドアルゴリズムを使用して計算されます(以下を参照)。 入力 入力は、スペースで区切られた文字列表現としてi、jまたは2つの別個の整数として取得できます。整数は10,000以下であると想定できます。また、入力整数は互いに素ではないと想定できます。 ユークリッドの内訳 との間の大きい数はi、jできるだけ小さい数で除算されます。次に、残りが追加されます。このプロセスは、残りがになるまで、残りと前の数で繰り返され0ます。 たとえば、入力が1599 650次の場合: 1599 = (650 * 2) + 299 650 = (299 * 2) + 52 299 = (52 * 5) + 39 52 = (39 * 1) + 13 39 = (13 * 3) + 0 最後の数、13は2つの入力整数の最大公約数です。次のように視覚化できます。 出力 出力は上記の形式の内訳で、その後に改行とGCDが続く必要があります。任意のメディアを介して出力できます。 例 入力 18 27 …
22 code-golf  math 

8
ボックスの高さマップ
さまざまなボックスのこのアスキーアート図をご覧ください。 +--------------------------------------------------------------+ | | | +-------------------------------+ +-------+ | | | | | | | | | | | | | | | +----------------+ | | | | | | | | | +-------+ | | | | | | | | | | | | +-------+ | | | +----------------+ …

18
Iccanobifシーケンスを出力する
nOEISにA014258として文書化されている、Iccanobifシーケンスのth番目までのシーケンスを出力または返すプログラムまたは名前付き関数を作成します。がゼロの0場合、シーケンスのゼロ番目の要素()のみが出力されることに注意してくださいn。 シーケンスは、標準のフィボナッチシーケンスと同様に開始することで生成されますが、前の2つの数値を追加した後、結果を反転し、先行ゼロを削除します。少なくとも私にとって興味深い事実は、このシーケンスが厳密に増加していないことです(以下のリストを参照)。また、厳密にフィボナッチ数列以上であるようです(おそらくそうです)。 プログラムの入力は整数でなければなりません。 シーケンスの最初の20の数字は、視聴の楽しみのためにここに提供されています。 0, 1, 1, 2, 3, 5, 8, 31, 93, 421, 415, 638, 3501, 9314, 51821, 53116, 739401, 715297, 8964541, 8389769 標準的な抜け穴は禁止されています。 最短のプログラムが勝ちます。 編集:シーケンスがゼロ番目の要素で始まり、ゼロの場合に含める必要があることを明確にするためのメモを追加しましたn。 IOの例: 0 -> 0 1 -> 0 1 6 -> 0 1 1 2 3 5 8 17 -> [0, 1, 1, 2, …

12
底の階乗の最後の非ゼロ桁
n b k入力の出力として3つの正の整数を指定するか、またはkの基本b表現の末尾のゼロの前の最後の桁を返すプログラムまたは関数を作成する必要がありn!ます。 例 n=7 b=5 k=4 factorial(n) is 5040 5040 is 130130 in base 5 the last 4 digits of 130130 before the trailing zeros are 3013 the output is 3013 入力 n b kここで、3つの正の整数2 <= b <= 10。 入力整数の順序は任意に選択できます。 出力 整数または整数リストとして返されるか出力される数字のリスト。 先行ゼロはオプションです。 あなたの解決策は、私のコンピューターで1分以内にすべてのサンプルテストケースを解決する必要があります(私は、近いケースのみをテストします。 例 提出物の正確性を確認するための新しいテストが追加されました。(これらは1分未満のランタイムルールの一部ではありません。) 入力=>出力(先行ゼロの省略を選択可能) 3 10 …

2
六角形のロッドscupltureに保持されている水
私は奇妙な彫刻に接着された六角形の棒の束を持っています。棒の長さは1〜99センチメートル(cm)で、断面積は1平方センチメートルです。すべてのロッドは、六角形の面で少なくとも1本の他のロッドに接着されています。ロッドはすべて下端で揃えられています。 大雨の後、彫刻は水で満たされています。それはどれくらいの水を保持しますか? 入力 プログラムは、(stdinまたはファイルを介して)スペースのペアと次の形式のロッドの長さを指定する数字のペアで構成される行を読み込む必要があります。 aa bb cc dd ee ff gg 例に示すように、各ロッド(ここのddなど)は、最大6本の周囲のロッドに接着されています。不足しているロッドは穴であり、水を収集しません。たとえば、入力 04 04 04 01 03 04 04 次の彫刻を表します。 中央の棒は高さです1(その棒が見える角度が見つかりませんでした)。これで、そのロッドの上のコラム3は、右側のロッドから溢れる前に2 cmの水を保持できます。他のロッドはどれもその上に水を保持できないため、答えはになります2。次に、さらに2つの複雑な例を示します。 Example 2: 55 34 45 66 33 21 27 23 12 01 77 36 31 74 answer = 35 ( 2 on top of 21 +11 on top …

16
一般化された配列の波紋
週を始める簡単なゴルフ!ベース配列 B、値配列 V、インデックス配列の 3つの配列が与えられますI。で指定されたインデックスにから値Vが挿入される別の配列を作成する必要があります。以下に例を示します。BI Base: [5, 1, 4, 1, 3] Values: [0, 0, 7] Indices: [5, 0, 3] インデックスは、基本配列の次の位置を指します。 [ 5, 1, 4, 1, 3 ] ^ ^ ^ 0 3 5 したがって、値配列から対応する要素を挿入すると、結果は次のようになります。 [0, 5, 1, 4, 7, 1, 3, 0] ルール プログラムまたは関数を作成し、STDIN(または最も近い代替)、コマンドライン引数または関数引数を介して入力を取得し、STDOUT(または最も近い代替)、関数の戻り値、またはBパラメーターとして指定された配列を変更することで結果を出力できます。 送信が関数でIありV、何らかの方法で変更できる場合、およびB出力に使用されない場合。 入力について次のことを想定できます。 ベース配列および値配列のすべての要素は、負でない整数になります。 値配列には、基本配列よりも多くても1つの要素しかありません。 値配列とインデックス配列の要素数は同じになります。 インデックス配列には繰り返しインデックスが含まれず、すべてのインデックスが範囲内になります。 基本配列と値配列には、繰り返される要素が含まれる場合があります。 …

6
最短のDe Bruijnを生成する
De Bruijnシーケンスは興味深いものです。これは、指定された長さの指定されたアルファベットのすべての可能なシーケンスを含む最短の循環シーケンスです。たとえば、アルファベットA、B、Cおよび長さ3を検討している場合、可能な出力は次のとおりです。 AAABBBCCCABCACCBBAACBCBABAC あなたはすべての可能な3文字のシーケンスは文字を使用していることに気づくでしょうA、Bと、Cそこにあります。 あなたの課題は、可能な限り少ない文字数でDe Bruijnシーケンスを生成することです。関数は、2つのパラメーター、シーケンスの長さを表す整数、およびアルファベットを含むリストを取る必要があります。出力はリスト形式のシーケンスになります。 アルファベットのすべてのアイテムが異なると仮定することができます。 ジェネレーターの例はこちらにあります 標準的な抜け穴が適用されます

10
この修正された円で平面を並べます
原点を中心とした単位円を取ります。隣接する2つの四分円で、円のx切片とy切片を結ぶ線に沿って円の曲線をミラーリングします。 結果の形状を使用して、平面をタイル表示できます。 この画像は、素晴らしい2D物理サンドボックスAlgodooで作成しました! 一般的な可逆画像ファイル形式で、これに似た画像を出力するプログラムを作成します。選択した名前のファイルとして画像を保存することも、単に表示することもできます。何も入力しないでください。 ルール: 全体画像は、任意の2つの視覚的に別個のRGBカラーを使用して変更円タイルでモザイク状にされなければならない:垂直ポインティングタイル、水平方向を向いタイルのための1つのための1つ。 円形タイルの半径は、少なくとも32ピクセルにする必要があります。(上の画像の半径は約110ピクセルです。) 画像は、少なくとも幅4タイル、高さ4タイルでなければなりません。上記のルールと組み合わせると、画像の最小サイズは256×256ピクセルになります。(上の画像は4タイルx 4タイルです。) テッセレーションは、任意の量で翻訳できます。たとえば、画像の左上隅は、タイルが交わる頂点である必要はありません。(ただし、テッセレーションは回転させないでください。) 円を描いたり、画像などを出力するためのコマンドを備えた外部グラフィックライブラリを使用できます。 曲線は、ほとんどのグラフィックスライブラリが実行する中点円アルゴリズムで実行できるように、実際に円に近似する必要があります。 タイルの端の周りのアンチエイリアスは許可されますが、必須ではありません。 バイト単位の最短提出が勝ちです。


7
地すべりを予測する
地すべり この課題では、あなたの仕事は、大規模な地滑りによって引き起こされる被害の程度を予測することです。初期高さ h >= 0と臨界係数 によってパラメーター化された、次の単純化された2次元モデルを使用しますc > 0。高さの崖から始めhて、地形がその左右に無限に完全に平らであると仮定します。の場合h = 6、状況は次のようになります。 ########## ########## ########## ########## ########## ########## ----------------------- -不動の岩盤であり、#不安定な土壌です。隣接する2つの列の高さの差がより大きい場合c、地すべりが発生します。c左の列の上部の土壌単位はc、右側の次の列に1つずつ落下します。図の右端の空でない列はのc = 2ために不安定であるため、地滑りが引き起こされます。 ######### ######### ########## ########## ########## ############ ----------------------- 列はまだ不安定であり、2番目の地滑りを引き起こします。 ######### ######### ######### ######### ############ ############ ----------------------- これで、左側の列が不安定になったため、そこで新しい地滑りがトリガーされます。 ######## ######## ######### ########### ############ ############ ----------------------- この後、崖は再び安定しています。このモデルの良いところは、地滑りが処理される順序は重要ではないということです。最終結果は同じです。 タスク あなたのプログラムは、整数パラメータを与えているhし、cそれは出力の総数すべき入力として(順番は関係ありませんが、あなたはあなたの答えでそれを指定する必要があります)、および列地滑りが影響していることを。これは、結果として安定した崖の高さが厳密に0との間の列数を意味しますh。上記の例では、正しい出力は4です。 完全なプログラムまたは関数を作成できます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。 テストケース これらは形式で与えられますh c …
22 code-golf 

19
ラッキーナンバーを生成
ストーリー: ルーシーはジョージに彼のラッキーナンバーとは何かを尋ねました。熟考した後、ジョージはラッキーナンバーをいくつか持っていると答えました。少しの混乱の後、ルーシーはジョージに彼の最初のnラッキーナンバーとは何かを尋ねました。その後、ジョージは彼に、あなたのために、彼のために仕事をするためのプログラムを書くように頼みました。 チャレンジ: 標準入力/関数引数から文字列または整数を受け取るプログラム/関数を作成しnます。プログラム/関数は、最初のn ラッキーナンバーを返し/出力します。ラッキーナンバーは、ふるいを介して次のように定義されます。 正の整数から始めます。 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, ... 次に、1つおきの数字を削除します。 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, ... 残りの2番目の数値は3なので、3番目ごとに削除します。 1, …

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