プログラミングパズルとコードゴルフ

プログラミング愛好家やコードゴルファーのためのQ&A

6
Piの素数を見つける
プライムはどこにでもあります... 彼らはPiの中に隠れます 3.141592653 58979 3238 462643 3832 795028841 971693993751 それらの素数を取得しましょう! チャレンジ 入力としてintegerが与えられるとn>0、の最初のn桁の内側に隠されている素数を見つけますPi 例 以下のためにn=3我々は素数を検索しなければなりません[3,1,4]。プライムは2つある(3,31)ため、コードは2 For を出力する必要n=10が[3,1,4,1,5,9,2,6,5,3]あります。最初の10桁は出力され、隠されていた(そして見つかった!)12ため、コードが出力[2, 3, 5, 31, 41, 53, 59, 653, 4159, 14159, 314159, 1592653]されます。 テストケース 入力->出力 1->1 3->2 13->14 22->28 42->60 50->93 150->197 250->363 500->895 ルール あなたのコードが可能でなければならないため、少なくともすべての素数を見つけるn=50 あなたがすることができ、はい、最初の50桁ハードコーディングのPi場合のように エントリは答えをハードコーディングを無効です これはコードゴルフです。バイト単位での最短の回答が勝ちです!
30 code-golf  math  primes  pi 

14
TeXを生成してSierpinski Triangle Fractalをタイプセットする
チャレンジ 5レベルのSierpinski Triangle FractalをタイプセットするTeX(LaTeX)数学方程式コード(以下に示す)を出力するコードを記述します。最短コードが勝ちます。 詳細 TeX(およびLaTeXなどの友人)は、洗練された組版システムです。数式のネストされた任意の複雑な式をレンダリングできます。偶然にも、この「ネストされた複合体」はフラクタルを説明しています。以下はMathJaXでレンダリングされます バツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツバツ{{{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}^{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}_{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}}^{{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}^{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}_{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}}_{{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}^{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}_{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}}} ネストされた上付き文字と下付き文字で構成される次のプレーンテキストの数学方程式コードによって: {{{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}^{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}_{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}}^{{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}^{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}_{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}}_{{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}^{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}_{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}}} これは5レベルのネストにすぎないことに注意してください。あなたは生成する必要はありません$...$か、$$...$$または他のマークアップは、例えば、あなたは多くのオンラインエディタで生成されたTeXをプレビューすることができます/起動のTeX&カンパニーにおける数学の方程式を終了するために必要な: http://www.hostmath.comしかし、あなたは多くを見つけることができます他も。この質問は友達との議論に触発されました。 更新 同様の質問がありますが、それははるかに一般的であり、異なるソリューションを生成します。あるシステム(TeX)では完全に明示的で、別のシステムでは圧縮されている非常に固定された単純なコードのkolmogorov-complexityを本当に見たかったのです。これnは、5レベルではなくコメントにも対応しています。

15
ABAA / ABBB:この再帰的な2Dパターンを生成
次の興味深い再帰パターンに出くわしたとき、無限抵抗ネットワーク(長い話)をいじっていました。 |-|| |--- このパターンの各インスタンスは、高さの2倍の幅です。パターンのあるレベルから次のレベルに進むには、この長方形を2つのサブブロックに分割します(それぞれがNxNの正方形です)。 AB = |-|| |--- so A = |- |- and B = || -- これらの半分は、次のパターンに従って複製および再配置されます。 ABAA ABBB giving |-|||-|- |---|-|- |-|||||| |------- チャレンジ 数値を指定して、この再帰的設計のth番目の反復をN出力するプログラム/関数を作成しNます。これはゴルフです。 I / O形式は比較的緩やかです。単一の文字列、文字列のリスト、文字の2D配列などを返すことができます。任意の末尾の空白を使用できます。0または1のインデックスを使用することもできます。 例 パターンの最初のいくつかの反復は次のとおりです。 N = 0 |- N = 1 |-|| |--- N = 2 |-|||-|- |---|-|- |-|||||| |------- N …

30
N×Nチェス盤にいくつのワジールを配置できますか?
Wazirという名前の新しい妖精のチェスの駒がチェスに導入されたとします。ワジラーは、位置(x、y)から次の位置に移動できます: (x +1、y) (x、y +1) (x -1、y) (x、y -1) つまり、彼らはルークのように直角に動きますが、王のように一度に1歩だけです。N×Nチェス盤にこのようなワジールをいくつ配置して、2人のワジールが互いに攻撃できないようにすることができますか? 1×1ボードでは、このようなピースは1つしかありません。 2×2ボードでは、このようなピースが2つあります。 3×3ボードでは、このようなピースが5つあります。 Nを指定すると、N×Nチェス盤に配置できるワジラーの数を返します。 これは、OEISシーケンスA000982です。 より多くのテストケース 7 → 25 8 → 32 100 → 5000

15
アレイをどれだけ激しく粉砕できますか?
数字の配列を粉砕するプロセスを定義しましょう。クラッシュでは、配列を左から右に読み取ります。ある時点で2つの同じ要素が連続して出現した場合、最初の要素を削除し、2番目の要素を2倍にします。たとえば、次の配列を粉砕するプロセスです [5,2,2,3] ^ [5,2,2,3] ^ [5,2,2,3] ^ [5,4,3] ^ [5,4,3] ^ 同じ要素を複数回折りたたむことができます。たとえば、押しつぶされたときに[1,1,2]なり[4]ます。 配列を押しつぶすプロセスによって配列が変更されない場合、配列を押しつぶせないものと呼びます。例えば、粉砕された後も[1,2,3]まだ[1,2,3]です。 あなたの仕事は、配列を取得し、それを破壊できないようにするために必要なクラッシュの数を決定することです。0から2 32 -1の範囲の整数のみをサポートする必要があります これはコードゴルフなので、回答はバイト単位でスコアリングされ、バイト数は少ない方が良いです。 テストケース [1] -> 0 [1,1] -> 1 [2,1,1] -> 2 [4,2,1,1] -> 3 [2,2,2,1,1] -> 3 [0,0,0,0] -> 1 [4,0,0,0,4] -> 1 [4,0,0,0,0,4] -> 1 [] -> 0

27
パイはあなたの番号を取得しました
チャレンジ: 円周率は無限であることになっています。つまり、すべての数値はpiの小数部分に含まれています。あなたの仕事は、入力で正の整数を取り、出力でこの数字の位置をpi桁で返すことです。 入力された場合、例えば59、我々は戻ります4 理由は次のとおり59です。piの桁の数字を探します 3.14159265... ^^ 値は4桁目から始まるため、出力はになります4。 他のいくつかの例: input : 1 output : 1 input : 65 output : 7 input : 93993 output : 42 input : 3 output : 9 ルール: 最初の200桁以内に存在しない数字を処理する必要はありません。 標準の抜け穴は、いつものように禁止されています。 これはcodegolfなので、少ないバイトが勝ちます。
30 code-golf  pi 

14
火で殺します
免責事項:この質問の中で語られたストーリーは完全に架空のものであり、イントロを提供する目的でのみ発明されました。 私は邪悪な農民であり、私の地域で小麦の価格を引き上げるために、私は私の周りのすべての農民の畑を燃やすことにしました。私は本当に野原が炎上するのを見たいです(したがって、私は私の邪悪な笑いを使用して、喜びと手を一緒にこすることができます)私のために焼却された。 あなたのタスク: 入力としてフィールドを取り、フィールド全体が灰になるまで書き込みの段階を返すプログラムまたは関数を作成します。燃えているフィールドの特定のセクションは、炎の強度を表す整数で表されます。火災は「1」から始まり、「2」、次に「3」へと続きます。火災が「4」に達すると、火災で可燃性である直接(斜めではない)隣接エリアをキャッチします。「8」に達すると、次の反復で燃え尽き、「A」で表される灰に変わります。エリアがまだ火に触れていない場合、「0」で表されます。たとえば、フィールドが次のような場合: 100 000 あなたのプログラムはこれを出力するはずです: 100 000 200 000 300 000 410 100 520 200 630 300 741 410 852 520 A63 630 A74 741 A85 852 AA6 A63 AA7 A74 AA8 A85 AAA AA6 AAA AA7 AAA AA8 AAA AAA 必要に応じて、一貫性があり互いに異なる限り、上記の記号を選択した記号のセットに置き換えることができます。 入力: 上記の改行で区切られた文字列など、標準形式のフィールドの開始位置。 出力: 配列として、または何らかの文字で区切られた文字列として、書き込みのたびに繰り返されるフィールド。 テストケース: 0301 …

30
角から長方形の配列を再構築する
私はかつて美しい長方形の配列を持っていました。それは非常に対称的でしたが、残念ながらバラバラになり、今では左上隅しかありません。あなたの仕事は、元のアレイを再構築することです。 プログラムは整数の2次元配列を受け取ります。解析を簡単にするために、それらはすべて1〜9であると想定できます。タスクは、配列の列、行、およびその両方を逆にし、結果の角を縫い合わせて、結果の配列を返すことです。 配列の次元は少なくとも1x1であると仮定できます。 テストケース: Input: 1 2 3 4 5 6 Output: 1 2 3 3 2 1 4 5 6 6 5 4 4 5 6 6 5 4 1 2 3 3 2 1 Input: 1 Output: 1 1 1 1 Input: 9 9 9 Output: 9 9 …

13
ASCIIアートの平方根
あなたはTeXやLaTeXなどを本当に嫌う数学者のインターンとして働いています。そのため、彼はすべての組版を放棄し、すべての書式設定をASCIIで行うことにしました。しばらくするとこれにうんざりし、平方根から始めて、その一部の自動化を開始することにしました。 平方根の作成方法は次のとおりです。 ### this is the input ### ### _____ put a row of underscores stretching one character off either side on top ### ### ### _____ put a diagonal of slashes in front going the height of the input / ### / ### / ### _____ put a diagonal …

30
どのカードですか?
前書き 昔、私は通常のトランプでカードゲームをコーディングするときに、各カードに番号を指定し、カードを取得するためにいくつかの番号で関数を呼び出していました。これはやや私にこの挑戦をするよう促しました。 そのため、トランプを知らない人のために、カードのデッキは52枚のカードで構成されています(4つのスーツ、つまり、ハート、ダイアモンド、スペード、クラブのそれぞれに13枚)。各スーツには13枚のカードがあります。最初に2〜10の番号が付けられ、次にジャック(J)、クイーン(Q)、キング(K)、エース(A)です。これが注文です チャレンジ 課題は、入力として1〜52の整数を取り、その位置にカードを表示することです。ただし、出力は言葉で行う必要があります。また、順序を維持する必要があります。つまり、最初の13枚のカードはハート、次にダイヤモンド、次にスペード、最後にクラブになります。 たとえば、誰かが番号を選択した場合、30カードは3番目のスーツ、つまりスペードに属します。また、それは数5を意味スーツ、中に4枚目のカードだろうそこで言葉であなたの出力は次のようにする必要がありますfive of spadesし、それがなければならない、常にこの形式に従うが続く、すなわち、最初のカード、ofおよびスーツの名前でを最後に、間にスペースが必要です。 入出力 入力は 1〜52の整数です(両方を含む)。ここでカウントは1 から開始することに注意してください。0から開始することもできます。ただし、上記のカードの順序を維持する必要があります。出力は、単語で書かれたその位置のカードになります。無効な入力を処理する必要はありません。また、出力は小文字でも大文字でもかまいません。 以下に、すべての可能な入力とその出力のリストを示します。 1 -> two of hearts 2 -> three of hearts 3 -> four of hearts 4 -> five of hearts 5 -> six of hearts 6 -> seven of hearts 7 -> eight of hearts 8 -> …

16
入力を使用したBPMの計算
経過した8つのデータポイントを使用して平均BPM(1分あたりのビート数)を計算する最短コードをプログラムします。これは私の最初の投稿であり、これに似た質問を見たことはありません。私はリズムゲームのファンなので、あなた自身のキーボードとあなた自身のリズム感覚を使ってBPMを計算するための小さな便利なツールを持っているといいでしょう... チャレンジ すべての入力は特異でなければなりません。(つまり、「入力」として「Enter」のみを押す) プログラムには少なくとも9つの入力が必要です。(経過した8つのデータポイントを作成するには。) プログラムは、小数点以下2桁で四捨五入されたキー入力のBPMを出力する必要があります。(つまり178.35) タイミングは最初の入力から始まります。プログラムの開始ではありません これはcode-golfなので、最短の答えが勝ちです。 入力と出力の例 少なくとも1つのサンプル入力および出力を提供します。入力がどのように見えるかについての独自の説明と一致することを確認してください。 入力: > [Enter-Key] # User waits 1 second ... 7 more inputs > [Enter-Key] 出力: > 60 現在の勝者は、Pythを使用した22バイトのKarlKastorです 勝者はPythを使用していましたが、Matlabの答えは注目に値する答えでした。
30 code-golf 

30
アルファベットの階段
チャレンジ あなたのタスクは、入力なしで以下を出力するプログラムまたは関数を作成することです。 a bb ccc dddd eeeee ffffff ggggggg hhhhhhhh iiiiiiiii jjjjjjjjjj kkkkkkkkkkk llllllllllll mmmmmmmmmmmmm nnnnnnnnnnnnnn ooooooooooooooo pppppppppppppppp qqqqqqqqqqqqqqqqq rrrrrrrrrrrrrrrrrr sssssssssssssssssss tttttttttttttttttttt uuuuuuuuuuuuuuuuuuuuu vvvvvvvvvvvvvvvvvvvvvv wwwwwwwwwwwwwwwwwwwwwww xxxxxxxxxxxxxxxxxxxxxxxx yyyyyyyyyyyyyyyyyyyyyyyyy zzzzzzzzzzzzzzzzzzzzzzzzzz 得点 これはcode-golfであるため、各言語で最も短い回答が優先されます。

10
タツノオトシゴの靴
もちろん、タツノオトシゴには靴が必要です。ただし、尾が1つしかないタツノオトシゴには、靴が1つだけ必要です。残念ながら、靴はペアでしかありません。タツノオトシゴ政府にとってはお金が不足しているため、できるだけ少ないペアを購入する必要があります。各タツノオトシゴは、靴のサイズ持つX xは正の整数です。ただし、タツノオトシゴは必要に応じてサイズx-1またはx + 1の靴を履くことができます。 あなたの仕事は、タツノオトシゴ政府がすべてのタツノオトシゴに靴を履くために購入しなければならない最小数のペアを出力することです。 必要に応じて、標準の抜け穴などを入力できます。 これはcode-golfであるため、バイト単位の最短コードが優先されます。 テストケース 2 4 6 6 8 14 -> 4 2 1 3 1 1 -> 3 4 1 4 9 1 8 9 1 8 4 -> 6 1 2 3 5 7 8 10 12 -> 4
30 code-golf 

7
成長の遅いクイン
クインを作ります。 簡単そうですね。さて、この馬は自分自身とその最初の文字を出力する必要があります。 このようにして、いくつかの世代でクインは2つのコピーを出力します。 例:コードをとしますx。実行すると出力されますx + x[:1]。結果のプログラムを実行するx + x[:2]と、出力などが表示されます... コードがあった場合、foobarこれを実行すると出力されますfoobarf。これを実行すると出力されますfoobarfo。など、このパターンに従って以下のようになります。 foobar foobarf foobarfo foobarfoo foobarfoob foobarfooba foobarfoobar foobarfoobarf プログラムは2バイトより長く、各反復で独自のコードの余分な文字を1つだけ出力する必要があります。
30 code-golf  quine 

12
Quine Suiteを書く
私たちは多くのクインの課題を抱えてきましたが、多くのクインのフォーマットは似ています。 あなたの仕事は、同じ言語(少なくとも2つ)で選択したプログラムを作成し、すべてが独自のソースコードを出力することですが、これらのプログラムはいずれも文字を共有できません。 たとえば、次を使用してプログラムを作成する場合: printf+qw(printf+qw(%s)x2)x2 次のプログラムに次のものを含めることはできません。 %()+2finpqrstwx 等々。 ルール Unicode文字を使用することもできますが、バイト単位でスコアリングする必要があります。 すべてのプログラムは適切な馬のコミュニティ定義を満たさなければなりません。これは、特に空の文字列が有効なクインとしてカウントされないことを意味します。 標準的な抜け穴は禁止されています。 関数または完全なプログラムは、上記の定義を満たす限り許可されます。 シンボルに依存しない言語(LenguageとHeadsecksを含む)は許可されていません。 タイブレーカーとして最も短い合計コードで、ほとんどのプログラムが勝ちます。

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