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

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

9
100個のパスワード
私はそれぞれが別の内部にある100個のボールトを持っています。各ボールトには、単一の数字で構成されるパスワードがあります。 95 43 81 89 56 89 57 67 7 45 34 34 78 88 14 40 81 23 26 78 46 8 96 11 28 3 74 6 23 89 54 37 6 99 45 1 45 87 80 12 92 20 49 72 9 92 15 76 13 …

12
ヒートマップのデコード
ヒートマップ 天井に下向きのサーマルカメラがある長方形の部屋を考えます。部屋には、いくつかの強度の熱源があり1-9、背景温度は0です。熱は各ソースから放散され、(非対角線)ステップごとに1単位低下します。たとえば、20x10部屋 ...........1........ .................... ...8................ ..5...............2. .................... .1.................. ................1... .................65. .................... ............2....... 9つの熱源が含まれており、サーマルカメラによって示される温度勾配は 34565432100100000000 45676543210000000000 56787654321000000110 45676543210000001221 34565432100000012321 23454321000000123432 12343210000001234543 01232100000012345654 00121000000011234543 00010000000121123432 グラフィカル形式では、これは次のようになります。 勾配から、すべてではなく一部の熱源の位置と強度を推測できます。たとえば、すべて9のsは最高温度を持っているので、常に推測できます8。この場合は、勾配で極大値を生成するため、常に推測できます。2それは別のものを持っていないので、右の境界近くにも、それは地元の最大値ではないにもかかわらず、推測できる2隣人として。5その熱は同様にそれらの近くにより強い源によって生成される可能性がありますので、sが、一方で、推測されていません。0Sはない熱源を含まないことが知られているが、他のすべてのタイルができる潜在的なものを含みます。不確実なタイルをハイフンで示しましょう-、対応する数字による特定の熱源、および期間による特定の空きスペース.: ---------..1........ ----------.......... ---8-------......--. ----------......--2- ---------......----- --------......------ -------......------- .-----......-----6-- ..---.......-------- ...-.......-2------- あなたの仕事は、温度勾配からこの推測されたパターンを生成することです。 ルール 入力は、改行または垂直パイプの|どちらか適切な方で区切られた文字列として与えられ、出力は同じ形式になります。入力および/または出力に末尾の区切り文字がありますが、先行する区切り文字はありません。入力のサイズはさまざまですが、幅と高さは常に少なくとも4です。機能と完全なプログラムの両方が許容されます。最小のバイトカウントが優先され、標準の抜け穴は禁止されています。 追加のテストケース 入力: 898778765432100 787667654321100 677656543211210 678765432112321 567654321123210 グラフィカル形式では次のようになります。 出力: -9---8-------.. -------------.. --------------. …

29
分解された部分文字列
前書き stringを観察しましょうabc。これから作成できる部分文字列は次のとおりです。 a, ab, abc, b, bc, c 次のように、最初の文字列の下にそれらを配置する必要があります。 abc a b c ab bc abc 文字列の順序は重要ではないため、これも完全に有効です。 abc a ab abc b bc c したがって、サブストリングは、初期ストリングのサブストリングの位置の下に配置されます。したがってabcdef、substringのcde場合、次のようになります。 abcdef cde タスク タスクは、上記のように、すべての部分文字列を0より大きい長さに揃えることです。文字列自体にはアルファベット文字のみが含まれ、少なくとも1文字は含まれると想定できます。パディングには、スペースまたはその他のアルファベット以外の印刷可能なASCII文字(32 - 127)を使用できます。言及するかもしれない必要はありませんが、文字列自体はそうではないように、ユニークな文字が含まれていますabaから、a2回出現します。 テストケース 入力: abcde 可能な出力: a ab abc abcd abcde b bc bcd bcde c cd cde d de e …
32 code-golf  string 

8
合計3ペニーに何匹のギニアがいますか?
1971年の10進数化まで、英国のお金はポンドを240ペニーに分割することに基づいていました。シリングは12ペニーでしたので、20シリングはポンドになりました。最小額面は、ペニーの4分の1のファージングでした。コインには他にも多くの宗派やニックネームがありましたが、システムに慣れていない場合はかなり混乱する可能性があります。 チャレンジ (ほとんど)古い英語の金銭を他の金銭に変換できるプログラムまたは関数を作成します。ユーザーが使いやすくするには、複数形とニックネームをサポートする必要があります。 これらはあなたが支持しなければならない宗派とそれらの同義語です。便宜上、ファージングでの価値が各ラインをリードしています。 1: farthing, farthings 2: halfpence, halfpenny, halfpennies 4: penny, pennies, pence, copper, coppers 8: twopenny, twopennies, twopence, tuppence, half groat, half groats 12: threepence, threepenny, threepennies, threepenny bit, threepenny bits, thruppence, thrupenny, thrupennies, thrupenny bit, thrupenny bits 16: groat, groats 24: sixpence, sixpenny, sixpennies, sixpenny bit, …

2
BrainF ***でのQuickSortの実装[終了]
スタックオーバーフローのラウンジルームで説明したように: en.wikipedia.org/wiki/Quicksortに与えられたQuicksortアルゴリズムを最小限の知識しか持たない言語で実装できない場合は、別の職業を検討することをお勧めします。@sbi しかし、SBIは、BrainF ***は例外かもしれないとも指摘しました。 そこで、ここにパズル/チャレンジがあります:QuickSortをBrainF ***に実装します。実装は これおよび/またはここでのインタプリタによって解釈されます(大きなスクリプトの場合) ウィキペディアで説明されているアルゴリズムを実装します-可能であれば、インプレースソートとして 次の整数のリストをソートします:[0,4,6,4,2,3,9,2,3,6,5,3]および結果を出力します

16
バランス三元コンバーター
チャレンジアイデアのクレジットは@AndrewPiliserに送られます。サンドボックスでの彼の最初の提案は放棄され、彼がここで数ヶ月活動していないので、私は挑戦を引き継ぎました。 バランス三元法は、非標準の数字システムです。そう-あなたは更に左に行くように、それは3倍値の桁の増加という点で、三元のようなもの100である9と100128です。 ただし、0、1、および2の値を持つ代わりに、数字の値は-1、0、および1になります。(これを使用して、任意の整数を表現できます。) この挑戦のために、数字の意味は、+1のように書くことになる+、-1として書き込まれます-、と0だけです0。バランスの取れた3進法では-、数字の前にある記号を使用して、他の数字システムのように数字を無効にしません。例を参照してください。 あなたの仕事は、32ビットの10進数の符号付き整数を入力として受け取り、それを平衡3進数に変換する完全なプログラムを作成することです。どんな種類の組み込みベース変換関数も許可されていません(Mathematicaにはおそらく1つあります...)。入力は、標準入力、コマンドライン引数などになります。 入力にが0ある場合を除き、入力には先行ゼロが存在する場合がありますが、出力には存在しない場合があります0。 例 これらは、バランスの取れた3進数から10進数への変換です。他の方法で変換する必要があります。 +0- = 1*3^2 + 0*3^1 + -1*3^0 = 9 + 0 + -1 = 8 +-0+ = 1*3^3 + -1*3^2 + 0*3^1 + 1*3^0 = 27 + -9 + 0 + 1 = 19 -+++ = -1*3^3 + 1*3^2 + 1*3^1 + …

7
再帰クインによるニュートン法
あなたの仕事は、ニュートンの方法を使用して2の平方根を計算することです。プログラムは、ニュートン法を使用して反復を計算し、次の反復のソースコードを出力します(これは同じことを実行できる必要があります)。 ニュートンの方法は、ウィキペディアでかなり網羅的に説明されています ニュートン法を使用して平方根2を計算するには、次のようにします。 定義する f(x) = x^2 - 2 定義する f'(x) = 2x 定義x[0](最初の推測)= 1 定義する x[n+1] = x[n] - (f[n] / f'[n]) 各反復は、x [n]を2の平方根に近づけます。そう - x[0] = 1 x[1] = x[0] - f(x[0])/f'(x[0]) = 1 - (1 ^ 2 - 2) / (2 * 1) = 1.5 x[2] = …
32 code-golf  math  quine 

9
コルモゴロフマニア
文字列s のコルモゴロフ複雑度は、s を出力する最短プログラム Pの長さとして定義されます。Pの長さがsの長さより短い場合、sは圧縮可能と呼ばれます。それ以外の場合、sは非圧縮可能です。ほとんどの文字列は圧縮できません... この文字列を出力する最短のプログラムを書きます(スペースや改行なし): d9 a6 b6 33 56 a7 95 4b 29 b0 ac 7f 2a aa 6d 19 b8 4b 4c f8 b6 2a ac 95 a1 4b 4e a5 9d b3 e7 c9 4c 49 59 ec 94 b3 aa 6c 93 8f 11 5a 4d …

6
ミラークイン(または頭が痛い)
私は読んでいたコードを逆方向に印刷する-逆クインそして、逆方向のコードも実行可能な場合、これはより興味深いと思いました。したがって、このチャレンジには、他のすべてのルールと要件がありますが、逆になったら有効なソースである必要があります(同じまたは別の言語で、ソースを逆方向に印刷します) 逆クインチャレンジからのすべてのルールとスコアリングが適用されるため、この質問に対するすべての回答がその質問に回答します(ただしスコアも取得しません)。 編集: リクエストにより、すべてのルールがここにコピーされました。 ルール: 実行時に出力p 'を生成するプログラムpを記述します。p'はpを逆方向に、実行時にp 'はpを生成します。 他のファイルを使用しない(例 reverse.txt) 最小コード長は2文字です。 プログラムを回文にすることはできません。 得点: インターネットからプルデータを使用する場合は+50。 独自のソースコードを読む場合は+25。 1文字につき+1ポイント。 最低スコアが勝ちます。
32 code-golf  quine 

30
言葉を伸ばす
単語内の文字を複製するプログラムまたは関数を作成して、単語内の左から右に配置されたすべての複製された文字が入力配列を形成するようにします。 例えば: input: chameleon, [c,a,l,n] output: cchaamelleonn 入力 最初の単語(例chameleon) 文字の配列([c,a,l,n])または配列を表す文字列(caln)、または同様のもの 入力は、関数パラメーター、STDIN、または同等の言語を介して行うことができます すべての入力は小文字(az)になります 出力 変更された言葉 複数のソリューションがある場合、いずれも印刷できます input: banana [n,a] possible outputs: bannaana, banannaa |-|---------|-|--->[n,a] 入力単語(必ずしも配列ではない)に配列内の文字が(順番に)あると仮定することができます。 また、入力に同じ文字が連続していないと仮定することもできます(リンゴ、オタク、緑、ガラス、ドアではありません...) 例 input: abcdefghij, [a,b,c] output: aabbccdefghij input: lizard, [i,a,r,d] output: liizaarrdd input: coconut, [c,o] ouput: ccooconut or coccoonut or ccocoonut input: onomatopoeia, [o,o,a,o,o] output: oonoomaatoopooeia …

7
橋とトンネル
新しい高速道路を構築するのはあなたの責任です。しかし、それは山岳地帯を通り抜けるため、多数の橋とトンネルが必要です。高速道路自体は単一のレベルにとどまる必要があります。 入力 次のように、標準入力で山がどのように見えるかの大まかなASCII記述が提供されます。 /\ / \ /\ / \ /\ / \/ \ / \ / \ /\ / \/ \ / \ _ / \ /\ / \ \ / \ / \ / \ /\ \ / \ / \/ \/ \ \ / \ / \/ \/ …

10
Brainf ***ゴルファー
プログラミング言語で記述された最も簡単なコードの1つは、文字のプログラム出力シーケンスです(例:「Hello、world!」)。ただし、sはoをM E E S O T E R I Cのようなプログラミング言語Brainfuckもこの最も単純なコードを書くために非常に迷惑です。 あなたの仕事はプログラムを書くことです(brainfuckで書く必要はありません)。これは与えられたテキストを印刷する(最小長の)Brainfuckプログラムを印刷します。 入力 (間の文字列1とは255)任意の形式(変数、引数、標準入力、ファイル、...)で与えられます。 出力 出力は、入力として指定された正確な文字列を出力する有効な(一致しない[andでない])Brainfuckコード(符号なしの8ビットラッピングセルと左右の無制限のセル数を想定)です。 たとえば、入力の1つの可能な出力Aは++++++++[<++++++++>-]<+.です。 プログラムの>2m実行に長い時間()はかかりません。 BFプログラムの>10s実行に長い時間()がかかることはありません。 得点 (注意:計算が容易ではないため、現在のスコアリング方法は変わる可能性があります...) プログラムの長さ(BFコードの生成)自体は関係ありません。ただし、プログラムコードにBFコードをハードコーディングすることはできません。のみ許容範囲(例:単一の文字を印刷BFコード。0x01:+.)BFコードは、ハードコードされたかもしれません。 スコアは、これらの文字列を印刷するBFコードの長さの合計です。 Hello, world!単一の0x0A(\n)が追加された文字列(つまり、「Hello、world!」プログラム) 0x01〜からの単一文字0xFF これらの255個のBFコードの長さの合計にを乗算し1/16、丸め、スコアに追加します。 分割により生成された最初の16個の文字列のリスト、11-11-11に発生バイトのランダムシーケンスによって0x00全長さゼロの文字列を削除し、。 Lenna.png、すべて0x00のsを削除します。 歌の歌詞99本のビール、で始まる99 bottles~、改行は0x0A、段落は2で区切られ0x0A、最後に改行文字はありません。 あなたが提供する他の文字列。 プログラムには、それ自体のスコアの計算が含まれる場合があります。 もちろん、最低スコアのコードが勝者になります。

19
ドワーフとコイン
状況: 数人のMドワーフがゴブリンの胸にN金貨を見つけ、それらを分割しなければなりません。海賊への略奪品の優先順位の割り当てを管理する古代のルールにより、最古のドワーフは次の最古のドワーフよりもコインを1つ多く獲得する必要がありM-1ます。さらに、小人はコインを投げる必要はありません(つまり、小人に負のコインはありません) ドワーフがこのようにコインを分割するのを手伝うか、これが不可能であることを伝えてください。 勝者のコードは常に正しく答える必要があり(この課題は決定論的です)、一般的なコードゴルフ規則に従う必要があります。 入力 コインの数には整数N(3≤N≤1000)が与えられ、スペースで区切られたドワーフの数には整数M(3≤M≤N)が与えられます。 出力 ドワーフが望むようにコインを分割できない場合は、-1(マイナス1)を印刷します。そうでない場合は、各ドワーフが受け取るコインの数を、最古から最年少まで印刷します。数字はスペースで区切ります。 サンプル: 入力 3 3 出力 2 1 0 入力 9 3 出力 4 3 2 入力 7 3 出力 -1 入力 6 4 出力 3 2 1 0
32 code-golf 

14
スアンパンそろばんを描く
入力として単一の整数を取り、スアンパンそろばんを出力する最短のプログラムを書く テストケース 入力: 314159 出力: |\======================================/| || (__) (__) (__) (__) (__) (__) || || (__) (__) (__) (__) || || || || || || || || || || || || || || || || (__) (__) || |<======================================>| || (__) (__) (__) (__) || (__) || || (__) || …

13
ASCIIアートでキューブを描く
タスクの説明: ほぼキャビネットの投影でASCIIアートの立方体を描きます。 Monospaced fonts多くの場合、幅の約2倍の文字があります。入力は垂直線(角を除く)の長さなので、水平線は2倍の文字で描画されるため、結果のイメージは実際にはほぼ立方体になります。引き込み線は、キャビネットの投影で義務付けられている長さの半分で描画されます。 立方体の角はによって表され+、水平線は-、垂直線は|、対角線はを使用します/。 要約:入力をnとし、 立方体の水平方向のエッジは、-2 n個の文字で描かれ、2 n個の文字で構成さ れています。 立方体の垂直エッジは、n文字|で描かれ、n文字で構成されます。 立方体の斜めのエッジは、n / 2文字/で描かれ、構成されます。 立方体の角はで描画され+ます。上記で説明したように、角はエッジの長さにはカウントされません(以下の例を参照してください)。 入力: 標準入力に与えられた入力は、単一の正、偶数であるN(2≤ Nキューブの垂直線の長さを与える≤30)。その後に単一の改行が続きます。 出力: 出力は、上記の規則に従った標準出力のキューブです。行の末尾の空白は無視されます。 サンプル入力1: 2 サンプル出力1: +----+ / /| +----+ | | | + | |/ +----+ サンプル入力2: 4 サンプル出力2: +--------+ / /| / / | +--------+ | | | | | | …

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