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

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

4
ボックスを切り替えます!
ボックス化される可能性のある文字列を指定して、ボックスを切り替えます。これは、テストケースと説明で明らかになります。 入出力 入力フォーマット 入力は、CR、LF、またはCRLFで区切られた単一の文字列、または文字列のリストです。入力フォーマットはあなた次第です。 出力フォーマット 出力形式は入力と同じ形式でなければなりません。 説明+例 例としてボックス化された文字列を見てみましょう: +-------------+ |Hello, World!| +-------------+ ボックスを切り替えるには、最初と最後の行と最初と最後の列を削除します。(最後の行の終わりにオプションの末尾の改行がある)最後の行の後に末尾の空白がなく、どの行にも末尾の空白がなく、改行を数えないと想定することができます。 これは次のようになります。 Hello, World! 反対に 文字列がボックスにない場合は、ボックスを追加します。これはかなり簡単です。プリペンド+---...---+を持つ独自のライン上のkダッシュkライン毎に、次に最も長い直線の長さであり、そして、最も長い直線の長さと一致した後プリペンドとパイプ文字を追加する空白末尾とパッドを("|")。最後に、+---...---+最初の行と同じ設定を含む行を追加します。 例えば: Hello, World! になる: +-------------+ |Hello, World!| +-------------+ 入力のどの行にも末尾の空白がないと想定するかもしれません。 ボックスを囲む文字列の別の例: Hello, World! なる +----------+ |Hello, | | World!| +----------+ まだボックス化する必要があるものの例: +--------+ | | --------+ になる: +----------+ |+--------+| || || | --------+| +----------+ …

22
シーケンスを入れ替える
あなたの仕事は、OEISシーケンスを出力し、シーケンス名をコードに含むコードを記述することです(A______)。簡単でしょう?これが問題です。コード内のシーケンスの名前が2番目のシーケンスの名前に変更された場合、コードは2番目の別個のシーケンスも出力する必要があります。 入出力 コードは、標準入力メソッドを介してnを取り、OEISページで提供されたインデックスによってインデックス付けされたシーケンスのn番目の項を出力する関数または完全なプログラムにすることができます。 そのシーケンスのOEIS bファイルで提供されるすべての値をサポートする必要があります。bファイルにない数値はサポートする必要はありません。 得点 これはコードゴルフです。スコアはコードのバイト数で、バイト数が少ないほど優れています。 例 これは、A000217とA000290で機能するHaskellの例です。 f x|last"A000217"=='0'=x^2|1>0=sum[1..x] オンラインでお試しください!

4
異なる部分文字列の最大数
説明文 長さnとアルファベットサイズを指定するk>0と、プログラムは、最大数の一意の部分文字列を持つパラメーターを持つ文字列の数を決定する必要があります。の場合k=2、これはOEIS A134457を生成します。 例 例えば、2210部分文字列を持っている 、2、22、221、2210、2、21、210、1、10、と0、しかし11の合計のために、2それが唯一の10個のユニークな部分文字列を持っているので、二回表示されます。 これは、3つの異なるシンボルを含む長さ4文字列のできるだけ多くが、それには36 tieing列の合計35個の他の文字列との連携0012、2101および0121。したがって、n=4およびのk=3場合、プログラムは36を出力するはずです。 テストケース n k output 0 5 1 1 3 3 5 1 1 9 2 40 2 3 6 5 5 120

5
ASCII 2Dゲームマップ
問題 入力所与のa任意の入力形式で文字のグリッドであれば出力の各「ブロック」1つだけの要素を有するものです。 そして入力bbは入力と同じサイズの数値のグリッドですa。 道路には2つのタイプがあります。1はでマークされた石の道路を@表し、2はでマークされた未舗装の道路を表します# @道路は、ブロックの中心と道路側はグリッドセルの境界に拡張されることが、隣接している場合、サイズ6x6のです #道路は、ブロックの中央に道路側はグリッドセルの境界に拡張されることが、隣接している場合、サイズ4×4であります 出力グリッドは、入力中にASCII文字の8×8の行数でオフセットaし、入力から「道路」オーバーレイbなどを 入力 a=[[a,b,a],[b,a,b],[a,b,a]] b=[[1,1,1],[2,0,1],[2,0,0]] 出力: ステップ1:グリッド(入力の8x8表現a) aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa bbbbbbbbaaaaaaaabbbbbbbb bbbbbbbbaaaaaaaabbbbbbbb bbbbbbbbaaaaaaaabbbbbbbb bbbbbbbbaaaaaaaabbbbbbbb bbbbbbbbaaaaaaaabbbbbbbb bbbbbbbbaaaaaaaabbbbbbbb bbbbbbbbaaaaaaaabbbbbbbb bbbbbbbbaaaaaaaabbbbbbbb aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa ステップ2:で表される道路でオーバーレイするb: aaaaaaaabbbbbbbbaaaaaaaa a@@@@@@@@@@@@@@@@@@@@@@a a@@@@@@@@@@@@@@@@@@@@@@a a@@@@@@@@@@@@@@@@@@@@@@a a@@@@@@@@@@@@@@@@@@@@@@a a@@@@@@@@@@@@@@@@@@@@@@a a@@@@@@@@@@@@@@@@@@@@@@a a@@@@@@abbbbbbbba@@@@@@a bb####bbaaaaaaaab@@@@@@b bb####bbaaaaaaaab@@@@@@b bb####bbaaaaaaaab@@@@@@b bb####bbaaaaaaaab@@@@@@b bb####bbaaaaaaaab@@@@@@b …

5
Goldbachパーティションの増加
ゴールドバッハの予想は次のように述べている。 2より大きいすべての偶数は、2つの素数の合計です。 私たちは、数のゴールドバッハのパーティションを検討するn個に追加する2つの素数のペアであることを、N。ゴールドバッハのパーティションが増加していることを懸念しています。数値のゴールドバッハパーティションのサイズは、その数値のすべてのパーティションの最小素数のサイズで測定します。このサイズがすべての小さい偶数のサイズよりも大きい場合、数値はパーティションの増加です。 仕事 n> 2の偶数の整数を指定して、nがGoldbachパーティションの増加であるかどうかを判別し、2つの一意の値を出力します。 これはcode-golfなので、ソースコードのバイト数を最小限に抑えることを目指してください。 OEIS A025018

3
すべての整数mod qを生成する数を見つける
整数を法を検討qどこqジェネレータは任意の整数であり、素数である1 < x < qようにx^1, x^2, ..., x^(q-1)、すべてのカバーq-1の間の整数の1とq-1。たとえば、7を法とする整数(これをと表記Z_7)について考えてみます。次に3, 3^2 mod 7 = 2, 3^3 = 27 mod 7 = 6, 3^4 = 81 mod 7 = 4, 3^5 = 243 mod 7 = 5, 3^6 = 729 mod 7 = 1、すべての値を3, 2, 6, 4, 5, 1カバーし、1..6必要に応じてすべての整数をカバーします。 タスクは、入力nを受け取り、のジェネレータを出力するコードを記述することですZ_n。もちろん、これを行う組み込み関数やライブラリは使用できません。 コードのパフォーマンスに対する唯一の制限は、で完全にテストする必要があることですn = 4257452468389。 …

15
私の名前は何ですか?
PPCGユーザーIDを指定して、そのユーザーの現在のユーザー名を出力します。 例 Input -> Output 61563 -> MD XF 2 -> Geoff Dalgas 12012 -> Dennis foo -> -3 -> ルール 入力/出力は、許可されている任意の方法で取得できます。 出力は、適切な大文字とスペースを含む完全なユーザー名でなければなりません。 入力が有効なUserIDではない場合、またはユーザーが存在しない場合、プログラムは何も出力しないか、エラー出力を出力します。 プログラムは、このチャレンジ後に作成されたユーザーを含め、有効なユーザーであれば誰でも機能する必要があります。 プログラムはコミュニティユーザーのために機能する必要はありません。 プログラムは、削除されたユーザーに対して機能する必要はありません。 URL短縮文字は許可されていません。 得点 各言語で最短のコードが優先されます。

11
順列子を作成する
この課題では、リストを入力として受け取り、そのリストの順列を返す関数(関数は完全なプログラムである場合があります)を作成します。関数は次の要件に従う必要があります。 それは決定論的でなければなりません。 関数自体を可変回数で構成すると、任意の順列のリストを取得できるはずです。 これはコードゴルフの質問なので、回答はバイト単位でスコアリングされ、バイト数が少ないほど優れています。 さらなるルール あなたは、リストの任意のタイプ、(かかる場合があります[Integer]、[String]、[[Integer]]それ限り)を 空でないことができます 少なくとも16の可能な値を持つ個別のオブジェクトを含めることができます。(Haskellは使用できず[()]、関数はであると主張できませんid) 重複オブジェクトを含めることができます(セットなし) プログラムや関数を書くことはできますが、標準入出力に準拠する必要があります。

6
2つの弦の十字形の印刷
同じ長さであることが保証された2つの文字列のセットが与えられた場合、それらの十字を印刷します。 十字クロス次のように2つの文字列が得られます。 2番目の文字列の2番目の文字を生成し、次に最初の文字列の最初の文字を生成します。 2番目の文字列の最初の文字を生成し、次に最初の文字列の2番目の文字を生成します。 各文字列の最初の文字を破棄します。 文字列に複数の文字が含まれている場合は、手順1に戻ります。 たとえば、2つの文字列が Truck Tower クリスクロスはあります oTTrwroueuwcrcek 次の図に示すように。 各色は十字交差の異なる反復を表します。数字は、対応する文字のインデックスを出力に示します。

18
リストを最後の数に減らします
入力 数値のリスト(配列)、またはそれが簡単になる場合は数値文字列。リストには常に少なくとも2つの要素があり、すべての要素は自然数(ゼロより大きい整数)であると想定できます。 アウトプット 単一の数値、または数値ストリング。 問題 アイデアは、リストのその現在の段階で最大数の最後の桁を削除することによって数のリストを減らし、最終的に1つの数で終わることです(複数のインスタンスがある場合でも、1つの数のみが返されます) 例 [123,343,121,76,465,786] -- The last digit in 786 is dropped, so it becomes 78 [123,343,121,76,465,78] -- New largest number is 465, so the 5 is dropped, making it 46 [123,343,121,76,46,78] -- Repeat until left with one number [123,34,121,76,46,78] [12,34,121,76,46,78] [12,34,12,76,46,78] [12,34,12,76,46,7] [12,34,12,7,46,7] [12,34,12,7,4,7] [12,3,12,7,4,7] …

5
1と0の正しい組み合わせにテキストを送信します
私は最近、運転中にテキストメッセージを送信するTextpertである曲にリストしました。この曲の特定の1行がこの課題に影響を与えました。 私は写真にテキストを送るほど低く身をかがめることはありません/その代わりに私は1と0の正しい組み合わせにテキストを送ります これは明らかに、これを頭の中で行うことはほとんど不可能であるため、同じことを行うようにプログラムをコーディングすることにより、世界中のtextpertを支援する必要があります。 あなたの仕事は、500x500ピクセルサイズの画像ファイルの名前を取り、ファイルをバイナリとして出力することです。言語がサポートしている場合は、入力として画像を使用することもできます。 拡張子付きの画像ファイルを使用できます .jpg .png .gif .bmp .svg 私の意味が理解できない人のために、画像をバイナリに変換する方法を示すことができます。 ステップ1 ファイルの最初のピクセルを取り、RGB値をR、G、Bの3つの10進数として取得します。たとえば、最初のピクセルが255,0,0(赤)であるとします。 ステップ2 各数値を8ビットのバイナリ表現に変換し、単一の24ビットの数値に連結します。例では、これは111111110000000000000000 ステップ3 この24ビットの数値を最終出力に追加します。したがって、最終的な出力があるべき6000000長い数字と完全で構成すべきである1と0 これはコードゴルフなので、最短のコードが勝ちます!

4
手紙の戦い
あなたの仕事は簡単です:手紙の戦いに勝った人を教えてください。 軍隊 この戦闘には3つの異なる「部隊」があり、この表に要約されています。 name | health | damage A 25 25 B 100 5 C 10 50 部隊を表すために3つの固有の文字を使用できますが、これらの文字でないかどうかを指定する必要があります。 戦い サンプルの戦闘があるとします。 ABC # army 1 CBA # army 2 各軍は、左端のユニットが死ぬまで繰り返し発砲します。その後、彼らは右の軍隊に移動し、繰り返します。2回の攻撃軍はそれほどA軍1までA死んで、その後に移動しB、その後、C。軍1がC最初に攻撃し、次にB、次にA。軍が同時に攻撃すると仮定します。したがって、ラウンドの前に軍が生きていれば、軍は常に射撃し、同時にお互いを殺すことができます。左から順に発砲します。 戦闘は次のように展開されます。 ABC CBA BC # A (25 hp) killed by C (-50 hp), B (100 hp) attacked by B (-5 hp) …
9 code-golf 

1
ムリエルのような言語と実装を作成する
ムリエルは、ループする唯一の方法がクインを作成して実行することである言語です。あなたの仕事は、このプロパティを使用して独自の言語を作成し、それを既存の言語で実装することです。 Murielのような言語を次のように定義します。 Murielの@コマンドまたはpythonのコマンドと同様に、独自の言語でコードを実行するための組み込みコマンドがありますexec。 チューリング完成です。 組み込みの実行コマンドを削除すると、チューリングが完了しなくなります。 Murielは@、組み込みの実行コマンドとして、Murielに似ています。SmurfもMurielに似ています(組み込みの実行コマンドはx)。Pythonは、削除してもチューリング完全であるため、ムリエルのようなものではありませんexec。 あなたの仕事は、ムリエルのようなプログラミング言語を作成し、それを選択した言語で実装することです。あなたのスコアは、あなたが最小化しようとしている実装の長さです。 ノート: 組み込みの実行は、Murielとまったく同じように機能する必要はありません。子プログラムの終了、エラー、スコープなどをどのように処理するかはあなた次第です... 実装を記述する言語自体がムリエルのようであってはなりません。(これは@有効なエントリではありません。)また、この投稿の前に存在している必要があります。

8
テコンドーは好きですか?
チェ・ホン・ヒは2002年6月15日に名誉ある83歳で亡くなりました。彼はテコンドーを設立しました。 彼の死から15年後、私はテコンドーのマスターになりたいです。今こそ輝く時です! 仕事 文字列を指定すると、テコンドーバージョンを出力する必要があります。 ルール 有効な入力により、空でない文字列/文を受け取ります 各タイトル(大文字と小文字は区別されません)は、改訂されたローマ字表記に置き換える必要があります。 , *side kick*私はサイドキックをするのが好きなので、文の最後に追加する必要があります。 この変更された文を文字列として出力する必要があります。 これは、答えのバイト数を最小限に抑えることを目的としたコードゴルフです 例 "I am a Student and I do Taekwondo twice a week" => "I am a Geup and I do Taekwondo twice a week, *side kick*" "I am a Teacher willing to be a President" => "I am …

3
行エディター(詳細はこちら)
昔の霧の年、ファンフォールドターミナルが地球を歩くと、奇妙な生き物が住んでいました。奇妙に不自由でありながら奇妙に強力なラインエディターは、プログラミングランドスケープ内で数えきれないほど多くにあふれていました。目に見える限り地球を覆います。 今では苦境に陥っています。その広大な人口は狩猟、猟、そして絶滅の瀬戸際に追いやられました。少数の標本しか残っていませんが、ほとんどが、啓発されていない種類の動物園の窮屈で未完成の檻の中にあります。ああ、ありますed。 フランケンシュタインのように、高貴な獣を復活させます! コマンド 私たちのエディターはかなり最小限であり、次のコマンドをサポートします フォーカス移動コマンド <number>[,<number>]-指定された行にフォーカスを移動し、2番目の引数が状態列に指定されている場合。過剰な行番号は最後の行を取得します。列番号が多すぎると、行の終わりになります。 ,<number> -現在の行の列番号に移動します e -フォーカスをファイルの最後に移動しますが、新しい行は開始しません。 b -フォーカスをファイルの先頭に移動します。 情報コマンド L-現在のコンテキストをエコーし​​ます。現在の行を中心とした5行が印刷されます。5行すべてが1文字でインデントされます。現在の行には ">"が付いており、その他の行には ""が付いています。これらの行の下には、現在の列の「^」を除いて、スペースのみで構成される別の行が印刷されます(合計6行が印刷されます)。 l -現在の行をエコーし​​ます p [[<start>],[<end>]]-ファイルを開始アドレスから終了アドレスまで印刷します。これらの値のデフォルトは1および0(ファイルの終わり)です。 ファイル変更コマンド A [<text>] -ファイルの最後(つまり、新しい行の先頭)を超える行に移動し、(場合によっては)テキストを追加します。 <return>(単独)-改行を挿入します。したがってa <return> <return>、現在の行の後に改行を挿入します。 r <text> -フォーカスから行末まですべてをテキストに置き換えます。 i [<text>]-現在のフォーカスにテキストを挿入し、その後に改行を挿入します。この行のフォーカスを超えた部分は、次の行になります。 I <text>-現在のフォーカスにテキストを挿入し、行の残りを保持します。焦点はこの線のままです。 d -現在の行の内容を削除するか、現在の行がすでに空の場合は、その行を削除します。 j -この行を次の行に結合します この最後のグループの最初の4つの終わりは、フォーカスが次の行に移動しI、追加されたテキストの終わりにフォーカスが保持されます。フォーカスを削除または結合すると、同じ行と列番号のままになります。 コマンドの行番号の解釈 「+」または「-」で始まる番号は、現在の行番号からのオフセットとして解釈されます。符号なしの番号は絶対行番号として解釈されますが、「0」はファイルの最終行を意味します。 プロンプトと相互作用 エディターはシェルとして機能し、プロンプトの形式<line>','<column>'>'はlineは行番号です。ただし、フォーカスがファイルの最後の文字にある場合は「end」が使用されます。 各コマンドは、ユーザーが改行を押したときにのみ受け入れられます。そして影響を与えます。 Readlineサポートは許可されていますが、必須ではありません。 コマンドの説明で明示的に述べられていない限り、プロンプトのおよびの値の変更を除いて、フィードバックは提供されません。 得点 これはcode-golfなので、各言語で最も短い答えが優先されます。 これをサンドボックスで作成してくれたdmkeeに特に感謝します。
9 code-golf 

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