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

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

1
(言語)ヘビはどのくらいですか?
3次クインチャレンジに続いて、できるだけ多くの言語を使用するOuroborosプログラムを作成します。 つまり、言語Aで、プログラムBを言語Bで出力するプログラムpAを作成します。プログラムpBは、言語CでプログラムpCを出力する必要があります。 ループ内の2つの言語を同じにすることはできません。また、互いにサブセットまたはスーパーセットにすることもできません。ループ内のプログラムはどれも同一ではありません。 最も長い言語のチェーンが勝ちます。ソースコードの長さは、タイブレーカーになります。 以下は、Venteroが提供した長さ3のソリューションの例です。 s='print q<puts %%q{s=%r;print s%%s}>';print s%s PythonでこのPerlスニペットを生成します print q<puts %q{s='print q<puts %%q{s=%r;print s%%s}>';print s%s}> 次のRubyコードを生成します puts %q{s='print q<puts %%q{s=%r;print s%%s}>';print s%s} 次に、元のPythonスニペットを出力します。 s='print q<puts %%q{s=%r;print s%%s}>';print s%s

7
カウントダウンとリサイクル
秒読み このコードとゴルフのチャレンジの目標は、カウントダウンしながら、数字をリサイクルすることです。説明させてください。 まず、アプリケーションはプログラム引数として、またはstdinを使用して、数値を読み取ります。次のあなたは、単にこのようにカウントダウンする必要があります 10 9 8 7 6(で降順順序) しかし、待って、もっとあります! リサイクル すべての番号を印刷できる場合もありますが、すべての番号をリストするのではなく、リサイクルできます。簡単な例を挙げましょう: Input: 110 Output: 11091081071061051041031021010099... etc Recycled: 10 1 これで、110、109、108のすべての数値がリストされましたが、0と1がリサイクルされました。 もう一つの例: Input: 9900 Output: 9900989989897989698959894... etc Recycled: 9 98 コードゴルフチャレンジ 数値を読み取る(引数または標準入力) すべての可能な数字を(標準出力またはファイルに)リサイクルしながら、降順でカウントダウンを出力します 1に達するか、0〜9をリサイクルした瞬間に停止します(最初に起こることは何でも) 簡単な例(1に達するまで): Input: 15 Output: 15141312110987654321 (Notice the 110 instead of 1110) より高度な例(すべてリサイクル): Input: 110 Output: 110910810710610510410310210100998979695949392919089887868584838281807978776757473727170696867665646362616059585756554535251504948474645443424140393837363534332313029282726252423221 Recycled: …
14 code-golf  number 

3
長さに等しい式
数字が与えられたら、その数字の長さでその数字に等しい単語の式を見つけます。 したがって、の入力に対して15、sixteen minus one15文字(スペースはカウントしません)を出力できます。複数のソリューションが存在する場合は、必要なものを印刷してください。存在しない場合は、印刷しますimpossible 唯一の演算子を使用してplus、minus、times、とdivided by。演算子は左から右に評価されます。 1234をとしてフォーマットしone thousand two hundred thirty fourます。「and」がなく、ダッシュやコンマがないことに注意してください。 出力で使用される入力とすべての数値は、10,000未満の正の整数でなければなりません。 入力はコマンドライン引数として与えられます。標準出力に出力します。 例 1: impossible 4: four 7: impossible 13: eight plus five (you could also output "five plus eight") 18: one plus two times six (note that operators are evaluated from left to right) 25: one thousand …
14 code-golf  math  string 

2
ドミノデーのゴルフ
ドミノのセットアップを考えると、あなたの仕事は、どのドミノが落ち、どれが落ちないかを把握することです。 入力 ドミノのセットアップの長方形のASCII表現を取ります。ASCIIグリッドには次の文字が使用されます。 (スペース):空のセル |、-、/、\:ドミノ ドミノは、次の文字で表される8方向に分類できます(WASDの向きに似ています)。 Q W E A D Z X C 1つ以上のドミノがこれらの文字の1つで置き換えられ、開始時にドミノが押し込まれたことを示します。以下に例を示します。 D||||/ - / - - - - /||||| このチャレンジを入力解析の演習にしたくないので、次の入力フォームのいずれかが許可されます。 グリッド付きの文字列(必要に応じて、ディメンションが前に付く場合) 各行に1つの文字列を含む配列/リスト/タプル(オプションで幅と高さの整数とともに) グリッドセルごとに1つの文字列/文字を含む(ネストされた)配列/リスト/タプル(オプションで幅と高さの変数とともに) STDINから読み取るか、関数の引数を取るか、入力が変数に格納されることを期待することもできます。 出力 STDOUTに書き込むか、有効な入力形式のいずれかで結果のグリッドを返す(または変数に保存する)ことで、どのドミノが落ちたか、落ちなかったかを示します。つまり、倒れた各ドミノを置き換え、#それぞれの立っているドミノを入力のままにしておきます。 ルール もちろん、ドミノはセットアップを通じて落下を伝播します。競合状態が存在する可能性があるため、タイムステップが固定されており、立ち下がりがタイムステップごとに1つのグリッドセルを伝播すると仮定します。 ドミノは一般に直感的に期待する方法に該当しますが、常識の厳密な仕様は非常に長いことが判明しました。申し訳ありませんが、例が役立つことを願っています。ここに、すべてのユニークな2タイルの組み合わせ(回転と反射まで)の要点があります。厳格なルールをお読みください。 各ドミノは、次の2つの方向にのみ落ちることができます。 W Q E A | D - / \ X C Z ドミノが倒れるたびに、倒れる方向のセルに影響を与えます。そのセルに同じ方向または45度異なる方向に落ちる可能性のあるドミノが含まれている場合、そのドミノは次のタイムステップでドミノを行います。 例: D| -> …

7
化合物のモル質量
仕事 92(ウラン)以下の原子番号を持つ元素のみで作られた化合物を取り込み、化合物のモル質量をで出力するプログラムを作成しgrams/moleます。 ルールと制限 モル質量を直接計算する関数を使用することはできません。 プログラムは、オフラインマシンで実行できる必要があります。 別のデータファイルを使用する場合があります。このファイルの内容を提供する必要があります。 スコアは、プログラムの長さ(バイト単位)と、使用することを選択した場合のデータファイルの長さ(バイト単位)です。 これはcode-golfであるため、最低スコアが勝ちます。 入力 化合物を含む文字列。この文字列はSTDIN、読み通すか、引数として渡すか、変数に設定することができます(どれを指定してください)。以下はすべて有効な入力です。 CH2 (1つの炭素、2つの水素) (CH2)8 (8炭素、16水素) U (1ウラン) プログラムは、埋め込み括弧(つまり((CH3)2N4)4)や、原子番号が92を超える要素を含む化合物に対して機能する必要はありません。上記の2つのケースのいずれかでプログラムが機能しない場合、そのInvalid formulaような場合に出力する必要があります-未定義の動作はありません。 出力 STDOUTの化合物のモル質量を変数に出力する必要がありますgrams/mole。元素の原子質量のリストは、ここ(Wikipedia)で入手できます。100個未満の原子を含む化合物(四捨五入)の場合、答えは小数点以下の精度である必要があります。 入力が無効な場合、Invalid formula出力する必要があります。 grams/mole(Wikipedia)の化合物のモル質量の計算に関する情報。 例 Input Output H2O 18.015 O 15.999 (16 acceptable) C6H2(NO2)3CH3 227.132 FOOF 69.995 C6H12Op3 Invalid formula Np 237 (or Invalid formula) ((C)3)4 144.132 (or Invalid formula) CodeGolf …

30
最小除外数
これは、簡単な一口サイズのコードゴルフになることを目的としています。 数値の有限コレクションのメックス(最小の除外数)は、コレクションに現れない最小の非負整数0, 1, 2, 3, 4, ...です。つまり、補数の最小値です。mex操作は、組み合わせゲーム理論における公平なゲームの分析の中心です。 あなたの目標は、できるだけ少ないバイトを使用してmexを計算するプログラムまたは名前付き関数を作成することです。 入力: 任意の順序の非負整数のリスト。繰り返しが含まれる場合があります。具体性のために、リストの長さと要素の許容範囲は、双方の間であろう0と20包括。 ここでの「リスト」の定義は柔軟です。要素の順序が固定されており、繰り返しが許可されている限り、数値のコレクションを表す構造は問題ありません。長さ以外の補助情報を含めることはできません。 入力は、関数の引数として、またはSTDINを介して取得できます。 出力 除外された最小の数。出力または印刷します。 テストケース [1] 0 [0] 1 [2, 0] 1 [3, 1, 0, 1, 3, 3] 2 [] 0 [1, 2, 3] 0 [5, 4, 1, 5, 4, 8, 2, 1, 5, 4, 0, 7, 7] 3 [3, …
14 code-golf  math 

11
アルファベットツリーにする
イントロ ほとんどのフォントでは、大文字のアルファベット文字のすべてがBDO、文字の境界矩形の4つの角のいくつかにほぼ接触する単一の行を持っていますACEFGHIJKLMNPQRSTUVWXYZ。 たとえばA、キャラクターの左下隅と右下隅を「タッチ」する2本の脚。同様に、C右上隅と右下隅に触れます(少し曲がっていますが、十分に近いです)。L左上と右下の角に1本の線で触れているだけです。の左下隅Lは頂点であり、単一行の終わりではありません。 ここに、私が見ているStack Exchangeフォント(できればあなたも)によると、どのキャラクターがどのコーナーに触れるかを示した表を示します。1は左上、2右上、3左下、4右下です。 A: 3 4 C: 2 4 E: 2 4 F: 2 3 G: 2 H: 1 2 3 4 I: 1 2 3 4 J: 1 3 K: 1 2 3 4 L: 1 4 M: 3 4 N: 2 3 P: 3 Q: 4 …

3
私をウィンドウマネージャーにしてください!
私はコードの肥大化が嫌いです! そこで、Windows 7システムをゴルフバージョンに置き換えることにしました。ただし、簡単ではないことがわかっているので、最初にプロトタイプを作成しましょう。ユーザーからウィンドウのリストを取得し、標準出力に疑似グラフィック表示を使用して表示します。 例:ユーザー入力: 0,0,15,10 15,10,20,15 10,13,15,15 9,1,16,3 17,5,20,7 11,2,17,4 15,4,19,6 13,3,18,5 CodeGolf®Window Manager™の出力: ┌──────────────┐ │::::::::┌─────┴┐ │::::::::│:┌────┴┐ │::::::::└─┤:┌───┴┐ │::::::::::└─┤::::├┐ │:::::::::::::└─┬──┘├┐ │::::::::::::::├─┬─┘│ │::::::::::::::│└──┘ │:::::::::::::::│ │:::::::::::::::│ └──────────────┼┼────┐ │::::│ │::::│ ┌────┤::::│ │::::│::::││ └────┴────┘ 入力: 標準入力から取得(または、システムにnoがある場合、stdin複数行の入力を提供できるメソッド) 各行には、カンマで区切られた4つの数字が含まれます-ウィンドウの座標 最初の2つの数字:左上隅。最後の2つの数字:右下隅 x,y表記を使用する 出力: 標準出力に書き込みます(または、システムにがなければ、stdout等幅テキストを表示するものは何でも) ウィンドウ境界の描画にコードページ437の単一のボックス描画文字を使用する 入力で後で指定されたWindowsは、以前に指定されたものを覆い隠します ウィンドウをコロン文字で埋めます。 : ウィンドウの整列を壊さない限り、先頭と末尾のスペースは問題ありません ノート: サポートしたい最大解像度:76(水平)x 57(垂直) 悪い入力をサポートする必要はありません ウィンドウの最大数:255(制限が必要な場合) Windows 7 cmdシェルでは、デフォルトでコードページ437文字が表示されます。誰かがLinuxでそれを行う方法を持っている場合(使用するxtermか何か)、ここで説明してください …

7
ミニマリスト六角時計
あなたの課題は、時刻を16進数で表示し、背景色を時刻の16進カラーコードとして表示する時計を作成することです。 要件:入力なし。出力の中央に、#記号と現在の時刻を24時間形式で「#hhmmss」として表示する必要があります。プログラムは、少なくとも1秒に1回は現在の時刻に更新する必要があります。テキストは中央に配置され、白(または目立つ明るい色)でなければなりません。背景は完全に16進コードの色でなければなりません。最短のコードが優先されますが、創造的な答えが推奨されます。 ライブ例。r / InternetIsBeautifulからのアイデア。
14 code-golf  date 

9
ボードの回転をシミュレートする
前書き コインが上部に挿入され、重力のために下部に(上部のコインに)落ちるマッチングゲームをプレイしています。 したがって、この O <- inserting this coin OO O OOOOO これになります O OO O OOOOO 誰かがボードを時計回りに回転させると想像してください。次のことが起こります。 1.ボードが回転します OOO OO O OO O 2.重力によりコインが落ちる O O OO OO OOO あなたのタスク あなたの仕事は、プログラムや関数を書くことでボードの回転をシミュレートすることです。簡単にするために、1種類のコインのみを扱っています(あまりにもエキサイティングなマッチングゲームではありませんよね...)。回転が完了した後にのみ重力が適用されると仮定できます。ボードは時計回りに回転します。 入力 入力は3種類の文字を含む文字列になります。 O(大文字o)OR 0(ゼロ)-コイン(ソリューションがサポートするものを決定します) (スペース)-空のフィールド \ n(改行)-行の終わり 入力はボードの状態を表します。入力は整形式で、ボードの有効な状態を含んでいると想定できます(コインが浮いていない)。入力は関数パラメーターにすることも、標準入力またはファイルから読み取ることもできます。 出力 出力は、回転後のボードの新しい状態です。出力には、入力と同じ3種類の文字が含まれます。出力は関数から返すことも、標準出力またはファイルに書き込むこともできます。 サンプル 入力1: O OO O OOOOO 出力1: O O …

7
フィボナッチプログラムの長さ
長さがnの次のフィボナッチ数である別のプログラムを出力する長さnのプログラムを作成します。新しいプログラムは同じことをしなければなりません-長さが次のフィボナッチ数などである別のプログラムを出力します 。n自体(元のプログラムの長さ)はフィボナッチ数である必要はありませんが、そうであれば良いでしょう。 最短のコードが優先されます。 外部リソースなし、ASCIIのみ、無料のコンパイラ/インタプリタが必要です。 出力が改行で終わる場合も、カウントされます。

28
他の2つの乱数とは異なる1つの数値をランダムに選択します
2つの乱数AとBが生成され、1、2、または3のいずれかになります。 あなたの仕事は、1、2、または3でもよい3番目の数字Cをランダムに選ぶことです。しかし、CはAまたはBに等しくすることはできません。 そして、はい、AはBと同じにすることができます。 A = Bの場合、Cには残り2つの数値しかありません。 AがBと等しくない場合、Cには1つの数値しかありません。 AとBがすでに選択されているとします これはPythonでAとBが作成される方法です A = random.randrange(1,4) B = random.randrange(1,4) これはすでにコードに含まれていると仮定します。 これは私がPythonで思いついた最短です while True: C = random.randrange(1,4) if C != A and C != B: break これは、A、B、およびCが同等にすることができるものです。 1,2,3 1,1,2 2,3,1 3,3,2 これは、A、B、Cが等しくできないものです 1,2,1 2,3,3 1,1,1 3,2,3
14 code-golf  random 

5
回転パズルを解く
一部の古いノキアの携帯電話では、回転と呼ばれる15のパズルのバリエーションがありました。このバリエーションでは、一度に1つのタイルをスライドさせるのではなく、一度に4つのタイルを一方向に回転させました。 このゲームでは、次のようなボードから始めます。 4 9 2 3 5 7 8 1 6 そして、左下のブロックを時計回りに2回、左上のブロックを時計回りに1回回転させると、次のようになります。 4 9 2 8 3 7 1 5 6 4 9 2 1 8 7 3 5 6 1 4 2 8 9 7 3 5 6 そして1タイルは、することになっての左上隅にあるであろう。最終的に、さらにいくつかの動きの後、あなたは次のようになります: 1 2 3 4 5 6 7 8 9 これが「元の」構成です。 …

15
.txtファイルからフレームを表示する
タスク: .txtそれぞれ\nが(明確でない場合はこの例を参照してください)で区切られたASCIIアートのフレームを含むファイルを指定すると、1秒あたり1フレームのフレームを含む動画が出力されます。 \n最終フレームの末尾に注意してください。 各フレームの寸法は次のとおりです。 X <80 Y <20 ルール 次のフレームを表示する前に前のフレームをクリアする必要があるため、各フレームを端末に印刷するだけでは有効な答えではありません。 新規変数に格納されているファイル名またはsys argsから、必要に応じてファイル名を取得できます。 New画像は無期限にループする必要があります これはコードゴルフです。最小のプログラムが勝ちます。 例 入力 0 0 0 0 00000 0 0 0 0 00000 0 00000 0 00000 0 0 0 0 0 0 0 出力 ゴルフをしていない import curses, time stdscr = curses.initscr() Frames = file.read(file('Frames.txt')).split('\n') while True: …
14 code-golf 

1
迷路の設計と解決[サンドボックス中に保留]
あなたの仕事は、インセプションからこのシーンで両方のキャラクターの役割を果たすことです。その中で、コブはアリアドネに課題を与えます: 解決に1分かかる迷路を設計するのに2分あります。 その説明にはいくつかの自由があります。最も重要なことは、この課題は時間ベースではなく、スコアが迷路と迷路ソルバーの有効性に基づいていることです。 簡単で公正なフォーマットに向けて反復する際に、この課題に対する多くの編集をおforびします。 パートI:迷路形式 すべての迷路は正方形です。迷路内のセルは、インデックスがゼロのタプルとして表されますrow column。 壁は2つのバイナリ文字列で表されます。1つは水平壁(行間の移動をブロックする)と1つは垂直壁(その逆)用です。上にNxN迷路があるNx(N-1)各タイプの可能な壁。セルにラベルが付けられている3x3の例を見てみましょう。 A B | C --- D | E F --- G H | I 可能なすべての垂直壁は次のとおりAB BC DE EF GH HIです。文字列に変換すると、示されている壁は011001垂直壁010010用と水平壁用です。また、「バイナリ文字列」とは、「文字「0」と「1」」を意味します。 完全な迷路形式は、次の順序で含まれる文字列です。 幅 セルタプルを開始 エンドセルタプル 水平壁 垂直壁 たとえば、この迷路: 0 1 2 3 4 _________ 0 | | E| _| 1 | _|_|_ | …

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