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

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

25
Fizz Buzz to Text
前書き フィズバズのトレンドはどこから来たのか私は特に知りません。ミームか何かかもしれませんが、やや人気があります。 チャレンジ 今日の仕事は、Fizz Buzzをそれぞれバイナリ(0、1)に変換し、そのバイナリをテキストに変換することです。かなり標準的なもの。 それはどのように機能しますか? FizzBu​​zzBuzzFizzBu​​zzFizzFizzFizz FizzBu​​zzBuzzFizzBu​​zzFizzFizzBu​​zzは01101000 01101001に変換され、その後「hi」に変換されます 制約 入力は、バイナリの観点ではフィズバズです(以下の例を参照)。 出力はテキストでなければなりません。 FizzBu​​zz入力が正しいと仮定できます。 これはcode-golfで、最短バイトが勝ちます。 入力 FizzBu​​zzBuzzFizzBu​​zzFizzFizzFizzFizzFizzBu​​zzBuzzFizzBu​​zzFizzFizzBu​​zz FizzFizzBu​​zzFizzFizzFizzFizzBu​​zz 出力 "こんにちは!"
29 code-golf  binary 

16
可能な限り多くの数字で増加するシーケンスを埋める
すべての要素がその前の要素以上である場合、数字のリストは単調増加(または非減少)と呼ばれます。 たとえば、1, 1, 2, 4, 5, 5, 5, 8, 10, 11, 14, 14単調に増加しています。 で示される任意の数の空のスポットを持つ単調に増加する正の整数のリストが与えられると、?空のスポットを正の整数で埋めて、リストにできるだけ多くの一意の整数が存在するようにしますが、単調に増加したままです。 これを実現する方法は複数あります。いずれも有効です。 結果のリストを出力します。 たとえば、入力が ?, 1, ?, 1, 2, ?, 4, 5, 5, 5, ?, ?, ?, ?, 8, 10, 11, ?, 14, 14, ?, ? 空のスポットがないと、リストが単調に増加することが保証されます 1, 1, 2, 4, 5, 5, 5, 8, 10, 11, …

13
パスカルの列合計
ここのほとんどの人はパスカルの三角形に精通しています。連続する行で構成され、各要素は左上と右上の2つの隣接要素の合計です。最初の5行は次のとおりです(Generate Pascalの三角形から借用)。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 パスカルの三角形を取り、その上でいくつかの合計を実行します(笑)。指定されたinputに対してn、nPascalの三角形の最初の行の列和を出力します。たとえば、inputの5場合、出力は次のように形成されます 1 1 1 1 2 1 1 3 3 1 [+] 1 4 6 4 1 ---------------------- 1 1 5 4 9 4 5 1 1 したがって、出力はになります[1, 1, 5, 4, 9, 4, …

6
地雷を一掃できますか?
マインスイーパは、どのタイルが「地雷」であるかを、それらのタイルをクリックせずに発見する必要がある人気のパズルゲームです。代わりに、近くのタイルをクリックして、隣接する鉱山の数を表示します。このゲームの欠点の1つは、複数の有効な回答があり、推測するだけのシナリオになる可能性があることです。たとえば、次のボードを取り上げます。 1110 2*31 3*?? 2*4? 112? この形式では、数字は隣接する地雷の数を*表し、は既知の地雷を表し、「?」潜在的な鉱山を表します。この特定のパズルの不幸な点は、4つの明確で有効な潜在的なソリューションがあることです。 1110 1110 1110 1110 2*31 2*31 2*31 2*31 3*4* 3*5* 3**2 3**1 2*42 2*4* 2*4* 2*42 112* 1121 1121 112* これは、ボードが解決できないことを意味します。解けるボードの例を次に示します。 1121 1??* 12?* 0122 有効な解決策は1つしかないため、このボードは解決可能です。 1121 1*4* 12** 0122 あなたの仕事は、有効なマインスイーパボードを取得し、それが解決可能かどうかを判断するプログラムまたは関数を作成することです。「有効な掃海艇ボード」とは、入力が常に長方形で、少なくとも1つのソリューションがあり、無効な文字が含まれていないことを意味します。 入力には、文字の配列、文字列の配列、改行を含む文字列などがあります。出力は、解ける場合は真偽値、そうでない場合は偽の値でなければなりません。パフォーマンスについてはあまり心配していませんが、あなたのソリューションはあらゆるサイズの入力に対して理論的に機能する必要があります。 いつものように、標準の抜け穴が適用され、バイト単位の最短ソリューションが勝ちます! 例: 次の例はすべて解決可能です。 1121 1??* 12?* 0122 1110 1??? 1110 0000 …

8
パッヘルベルのキヤノンをプレイ
Dのパッヘルベルのキャノンからの次の抜粋を音声として出力します。 ルール このチャレンジの作成前にコーデックが存在する限り、任意の形式/エンコーディングを使用できます 任意の楽器(実際の楽器、MIDI合成など)を使用できます。 テンポは65 BPMである必要があります(楽譜で表記)-65 BPMを正確に取得できない場合は、64.75〜65.25の範囲内の任意のテンポを使用できます。 楽譜はコンサートピッチにあります 平均律チューニングを使用する必要があります(具体的には、A4 = 440 Hzの12-ET) 参考のために、抜粋を再生するスタックスニペットを以下に示します。 コードスニペットを表示 <audio controls><source src="https://a.clyp.it/h3y3isar.mp3"></audio> Run code snippetHide resultsExpand snippet

30
イースターエッグにしよう!
いいえ、^^vv<><>BA種類のイースターエッグではなく、私たちがペイントする本物のイースターエッグです。 これは(ひどく描かれた)卵です。 __ / \ / \ | | \____/ イースターでは、それらをパターンでペイントします。これらのように: __ /--\ /----\ |----| \____/ __ /%%\ /%%%%\ |%%%%| \____/ __ /~~\ /~~~~\ |~~~~| \____/ チャレンジ 卵をペイントする文字(印刷可能なアスキー)が与えられたら、ペイントされた卵を印刷します。 例: &: __ /&&\ /&&&&\ |&&&&| \____/ #: __ /##\ /####\ |####| \____/ スペック 末尾の改行/スペースは許可されます。

10
雪だるまボウリング
(関連/インスピレーションを受けた:ボウリング隊形を描く) ここの冬の楽しい娯楽は、大きなボール(バスケットボールのような)と小さな雪だるまのフィギュアを使用して、スノーマンボウリングを行うことです。これをASCIIで再作成しましょう。 各雪だるまは次のもので構成されています。 (.,.) ( : ) こちらが10個の雪だるま「ピン」の配置です (.,.) (.,.) (.,.) (.,.) ( : ) ( : ) ( : ) ( : ) (.,.) (.,.) (.,.) ( : ) ( : ) ( : ) (.,.) (.,.) ( : ) ( : ) (.,.) ( : ) これらの「ピンは」からラベル付けされている1の10ように 7 …

11
Befingeの停止問題を解決する
単純な2D言語を定義してみましょう。信じられないほど元の名前befingeを与えます。Befingeには5つの指示があります。 <>^v、ほとんどの2Dエソランのように、それぞれの方向に命令ポインターをリダイレクトします。 . ノーオペレーションです。 命令ポインタは、左上隅から右に向かって始まります。命令ポインターが端に達すると、プログラムは停止します。すべてのBefingeプログラムは明らかに停止するか、何もしない無限ループに入ります。以下に2つの例を示します。 停止: >.v ..< ノンハルティング: >....v ..v..< ..>v.. ^..<.. 停止の問題はチューリング完全言語では解決できませんが、この問題では解決できます。タスクは、befingeプログラムを表す文字列を入力として受け取り、停止するかどうかに応じてtrueまたはfalseの値を返すプログラム(または関数)を作成することです。 入力はこれらの文字のみで構成され、スペースを埋めて長方形を形成すると想定できます。 指示には5文字の任意のセットを使用できます(例:)adws 。 テストケース 停止: . v> >^ ....v.... ....>...v .^..<.... .......v< .......v. ....^..<. v<>v>v^ >v^>^>v <>>^v<v v^<>v^< ノンハルティング: >..v ^..< >v< v<. >v. v<. >.^ >.>.>.v .><.<.< これはcode-golfであるため、最短のプログラム(バイト単位)が優先されます。

24
ダッチバーガーサービスnummer(BSN)11テスト
前書き: オランダのBSN(BurgerServiceNummer)は、次の規則に準拠している場合に有効です。 数字のみが含まれます。 長さは8または9でなければなりません。 数字がAthrough としてインデックス付けされている場合、I次の合計の結果:9xA + 8xB + 7xC + 6xD + 5xE + 4xF + 3xG + 2xH + -1xI(1ではなく-1に注意してください!)11で割り切れるはずであり、0であってはなりません。 チャレンジ: 入力: BSNを表す文字列または文字配列。 出力:truthyまたはfalsey入力が有効BSNであるかどうかの結果。 チャレンジルール: 入力形式は文字列または文字配列でなければなりません。整数のint配列、または(おそらく8進数の)数値を使用することはできません。(ただし、直接引数としてではなく、自分で数字の整数配列に変換できます。) 上記の入力には制限がありますが、すべてのテストケースに1つ以上の数字([0-9]+)が含まれると想定できます。 長さ8の代わりに9とBSNについて、オランダのウィキペディアは、以下の状態:「11・テストのため及び他の実用的な用途のために、長さ9の数を作るために添加される先行ゼロ」(ソース) 一般的なルール: これはcode-golfであるため、バイト単位の最短回答が優先されます。 コードゴルフ言語では、非コードゴルフ言語で回答を投稿しないようにしてください。「任意の」プログラミング言語の可能な限り短い答えを考えてみてください。 回答には標準の規則が適用されるため、STDIN / STDOUT、適切なパラメーターを持つ関数/メソッド、完全なプログラムを使用できます。あなたの電話。 デフォルトの抜け穴は禁止されています。 可能であれば、コードのテストへのリンクを追加してください。 また、必要に応じて説明を追加してください。 テストケース: // Truthy test cases: 111222333 123456782 232262536 010464554 10464554 44016773 …

25
文字列を並べ替え、
文字列を並べ替えると、通常は次のようになります。 ':Iaaceeefggghiiiiklllllmnnooooprrssstttttuuyyyy はい、それがソートされた最初の文でした。 あなたが見ることができるように、繰り返される文字が多い、aa、eee、ttttt、9つのスペースなど。 128最初の複製のASCII値256、2番目、3843番目などにASCII値を追加し、再度並べ替えて新しい文字列(同じ文字を取得するためのモジュラス128)を出力すると、文字列が取得されます。 ':Iacefghiklmnoprstuy aegilnorstuy egilosty iloty lt (単一の先頭スペースと4つの末尾スペースに注意してください)。 文字列は"順ソート"され<space>':I....uy、<space>aeg....uy、<space>egi....ty、<space>iloty、<space>lt、<space>、<space>、<space>、<space>。 数字を含む文字列を使用すると、これを視覚化する方が簡単かもしれません。文字列111222334は「ソート」されたとき:になります123412312。 チャレンジ: 驚くことではありませんが、挑戦は上記の説明に従って文字列をソートするコードを書くことです。 入力文字列には、32〜126の範囲(チルダまでのスペース)の印刷可能なASCII文字のみが含まれると想定できます。 テストケース: **Test cases:** *:Tacest*es*s* If you sort a string you'll typically get something like: ':Iacefghiklmnoprstuy aegilnorstuy egilosty iloty lt Hello, World! !,HWdelorlol #MATLAB, 114 bytes #,14ABLMTbesty 1A f=@(s)[mod(sort(cell2mat(cellfun(@(c)c+128*(0:nnz(c)-1),mat2cell(sort(s),1,histc(s,unique(s))),'un',0))),128),'']; '()*+,-0128:;=@[]acdefhilmnoqrstuz'(),0128@acefilmnorstu'(),12celmnostu'(),12celnstu(),clnst(),cls(),cs(),()()()() これはcode-golfなので、バイト単位でカウントされた各言語の最短コードがrefを獲得します。

1
非終端がPeano算術に依存しないプログラムを作成する
チャレンジ 「Pの実行が最終的に終了する」という命題がPeano算術に依存しないように、入力を行わずにプログラムPを作成します。 正式な規則 (上記の説明はあまりにも非公式だと思う数理論理学者である場合。) 一つは、原則として、できる変換するいくつかのユニバーサルチューリングマシン Uに(例えば、お気に入りのプログラミング言語を)ペアノ算術変数の上式HALT P HALT(、pは)命題「コードUがプログラムに終了を(ゲーデルエンコードさによって)p」。課題は、PALT 演算でHALT(p)も¬HALT(p)も証明できないようなpを見つけることです。 プログラムは、無制限のメモリとそれにアクセスするのに十分な整数/ポインタを備えた理想的なマシン上で実行されると仮定できます。 例 そのようなプログラムが存在することを確認するための1つの例は、0 = 1のペアノ算術証明を徹底的に検索するプログラムです。ペアノ算術は、ペアノ算術が矛盾する場合にのみこのプログラムが停止することを証明します。Peano算術は一貫性がありますが、独自の一貫性を証明できないため、このプログラムが停止するかどうかを判断できません。 ただし、プログラムの基礎となるPeano算術とは独立した他の多くの命題があります。 動機 この課題は、非終端がZFCに依存しない7,918ステートのチューリングマシンを示す、Yedidia and Aaronson(2016)による新しい論文に触発されました。あなたはその引用に興味があるかもしれません[22]。もちろん、この課題のために、実際のチューリングマシンの代わりに選択したプログラミング言語を使用することもできます。
29 code-golf 

23
nから最大n桁離れた位置を見つける
この質問の続編。 仕事 正の整数の配列が与えられた場合、次の最大要素kを見つけます。 存在するいくつかの正の整数距離Nは、アレイ内の要素が配置ように、n個 の場所は、左または右からkが等しいN。 配列には、この条件を満たす少なくとも1つの要素が含まれていることが保証されています。 最短のコード(バイト単位)が優先されます。好きなI / O形式を選択できます。 例 与えられた入力 [4, 6, 7, 9, 3, 6, 5, 7, 2] 適格な値は次のとおりです。 4あるように、7その右側に位置する7位に 最初に6、3その右側に3つの位置があるため 3あるように、4その左に位置する4つの位置が 5あるように、2その右側に位置する2つの位置が 2番目7は、3左側に3つの位置があるためです。 これらの値のうち、最大値は7です。 テストケース [1, 13] → 13 [2, 9, 8, 3, 72, 2] → 8 [5, 28, 14, 5, 6, 3, 4, 7] → 14 …

29
ウェーブをしましょう!
入力: lengthの文字列(wave-snippet)>= 2。 正の整数n >= 1。 出力: 単一行の波を出力します。これを行うには、入力文字列をn回繰り返します。 チャレンジルール: 入力文字列の最初と最後の文字が一致する場合、合計出力で1回だけ出力します(つまり^_^、長さ2はになりますが^_^_^、にはなりません^_^^_^)。 入力文字列には空白/タブ/改行/などは含まれません。 ご使用の言語が非ASCII文字をサポートしていない場合は、問題ありません。ASCIIのみのウェーブ入力の課題に依然として準拠している限り。 一般的なルール: これはcode-golfであるため、バイト単位の最短回答が優先されます。 コードゴルフ言語では、非コードゴルフ言語で回答を投稿しないようにしてください。「任意の」プログラミング言語の可能な限り短い答えを考えてみてください。 回答には標準の規則が適用されるため、STDIN / STDOUT、適切なパラメーターを持つ関数/メソッド、完全なプログラムを使用できます。あなたの電話。 デフォルトの抜け穴は禁止されています。 可能であれば、コードのテストへのリンクを追加してください。 また、必要に応じて説明を追加してください。 テストケース: _.~"( length 12 _.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"( '°º¤o,¸¸,o¤º°' length 3 '°º¤o,¸¸,o¤º°'°º¤o,¸¸,o¤º°'°º¤o,¸¸,o¤º°' -__ length 1 -__ -__ length 8 -__-__-__-__-__-__-__-__ -__- length 8 -__-__-__-__-__-__-__-__- ¯`·.¸¸.·´¯ length 24 ¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯ ** length 6 ******* …
29 code-golf  string 

30
二乗シーケンス
二乗シーケンスx nの各項は、x n-1を取り、それを二乗し、最初の4桁を除くすべてを削除することによって作成されます。 シーケンスは常にx 1 = 1111で始まります。これを二乗すると1234321が得られるので、x 2 = 1234 最初のいくつかの用語は次のとおりです。 1111 1234 1522 2316 5363 ... チャレンジ あなたの仕事は、非負の整数nを与えられて、x nを計算することです。I / Oを実行する完全なプログラム、またはnをパラメーターとして受け取る関数を送信できます。 ソリューションは、指定する限り、0個または1個のインデックスを作成できます。 このシーケンスのすべての用語は5桁より短いため、コードもできるだけ短くする必要があります。標準的なコードとゴルフの抜け穴が適用されます。 最高のゴルファーが勝つように! テストケース 注:これらは1インデックスです。 1 -> 1111 8 -> 6840 15 -> 7584 20 -> 1425 80 -> 4717

30
スクイグリーシーケンス
この挑戦を思いついたアドナンへのすべてのクレジット。 休憩に入る前の最後の挑戦。 仕事 正の整数nを指定するnと、奇数の場合、/その回数だけ繰り返します。場合nでもあり、繰り返し\その何回も。 (真剣に、テストケースはこの説明よりもはるかに明確になるので、テストケースを見てください。) スペック 合理的な入力/出力フォーマット。 標準の抜け穴が適用されます。 テストケース n output 1 / 2 \\ 3 /// 4 \\\\ 5 ///// 6 \\\\\\
29 code-golf  string 

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