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

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

7
Y2K…2019年?
2019年8月10日ですが、あなたの仕事はまだY2Kに関係しています。変だよね? 2桁の数字を追加して、それ自体を印刷するプログラムを作成します。初めて実行するときは、その出力に00を追加する必要があります(これはソースコードです。これは、変種であるためです)。その出力、2桁の番号のない元のプログラムを実行すると、元のプログラムが出力されますが、01が追加されます。その出力を実行して、02を追加したOGプログラムを取得し、その後03を使用してプログラムを取得します。このチェーンは99まで継続する必要がありますBREAKING NEWS: WORLD ENDS。そのプログラムはを出力するはずです。 プログラムがY2Kparanoia: yes次の場合: 出力するはずです Y2Kparanoia: yes00 その出力は印刷するはずです Y2Kparanoia: yes01 その出力は印刷するはずです Y2K paranoia: yes02 ステップ100まで繰り返します:このプログラムは、指定された終末ニュースを出力します これはコードゴルフであるため、これらの手順を実行しながら印刷できる最短のプログラムが優先されます。
18 code-golf  quine 

1
グリッド充填蛇行を完了する
グリッド塗りつぶし蛇行は、正方形のグリッドのすべてのセルを少なくとも1訪問し、隣接するセル間のエッジを2回以上渡らず、それ自体を渡さない閉じたパスです。例えば:N×NN×NN \times N グリッドが満たされると、次の8つのタイルのいずれかでグリッドの各セルを表すことができます。 このように番号を付けると、上記の蛇行のタイルはこのマトリックスで表すことができます。 5 6 5 6 4 8 3 2 5 7 6 2 4 3 4 3 あなたの仕事は、タイルの不完全なセットを与えられたグリッド充填蛇行を完了することです。たとえば、不完全な蛇行: ... 0不足しているタイルに対してsを使用して表すことができます: 5 0 0 0 6 0 0 7 0 0 0 0 0 0 3 2 4 0 0 0 0 0 3 0 0 ...このように完了することができます: …

7
グラフとしての3x3x3キューブの表面
あなたの仕事は、それぞれがルービックキューブのファセットに対応する54の頂点を持つグラフを生成することです。対応するファセットが辺を共有する場合、2つの頂点間にエッジがあります。 ルール アルゴリズムでグラフを表すために、隣接リスト、隣接行列、エッジリスト、または適切な形式を出力することを選択できます。(人間が読める視覚的なグラフは、ほとんどの場合、一般的にアルゴリズムの合理的な形式ではありません。) すべての頂点を自分自身に隣接させることも、隣接させないこともできます。 エッジごとに両方向を含める(セルフループでは1〜2回カウントする)か、エッジを1回だけ出力しますが、ウェイを混在させることはできません。 頂点の番号を付け直したり、いくつかの番号をスキップしたり、任意の方法で頂点に番号以外のラベルを使用することもできます。他の人があなたの答えをより簡単な方法でチェックできるように、番号が明らかでない場合は番号も投稿する必要があります。 これはコードゴルフです。バイト単位の最短コードが優先されます。 出力例 これは、例で使用されている頂点の番号付けです。 0 1 2 3 4 5 6 7 8 9 10 11 18 19 20 27 28 29 36 37 38 12 13 14 21 22 23 30 31 32 39 40 41 15 16 17 24 25 26 33 34 …

10
デバッガの内外で異なる動作をするプログラム[終了]
閉じた。この質問には詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善したいですか?詳細を追加し、この投稿を編集して問題を明確にします。 7か月前に閉鎖されました。 課題は、引数やその他の入力を受け取らず、デバッグされていないときの動作とはデバッガーで異なる動作をする決定性プログラム(任意の言語/ OS)を記述することです。 たとえば、プログラムはデバッグ中は何かを出力しますが、デバッグされていない場合は何も出力しません。または、それぞれの場合に異なるものを出力します。または、デバッグ中はクラッシュしますが、デバッグされていない場合はクラッシュしません。またはその逆。 警告と説明: タイミングの違いは考慮されません。 通訳言語が許可されています。 決定性を強調するために、動作はデバッグコンテキスト内外で正確に再現可能でなければなりません。 デバッガー自体の存在は、2つのケースの唯一の違いです。 入力(stdinまたはargv ENVなど)を追加するようデバッガーに指示することは不正です。デバッガーはプログラムを「そのまま」実行する必要があります。 デバッグ実行と非デバッグ実行の間で環境を変更する(仮想マシンまたは異なるOSで実行する、メモリ制限などのOS設定を変更する)ことは許可されていません。 最短のコードが優先されます。デバッガがどのように動作するかについて興味深いことを明らかにする賞金を授与することができます。
18 code-golf 

12
空白を埋める
文字列に特定の関数セットがあるとしましょう。これらの関数は、空白またはmadlibを埋めるようなものですが、入力が1つだけで、それを使用してすべての空白を埋めることが異なります。たとえば、次のような関数があるとします I went to the ____ store and bought ____ today. この関数を文字列に適用cheeseすると、結果は次のようになります。 I went to the cheese store and bought cheese today. これらの関数は、空ではない文字列のリストとして表すことができます。ここで、空白は単に文字列間のギャップです。たとえば、上記の関数は次のようになります。 ["I went to the ", " store and bought ", " today."] この表現では、この種のすべての関数に対して1つの表現しかなく、各表現に対して1つの関数しかありません。 本当にすてきなことは、そのような関数のセットが合成中に閉じられることです。つまり、2つの関数の構成は、常にこれらの関数の別の1つです。たとえば、上記の関数を ["blue ", ""] (blue入力の先頭に追加する関数)関数を取得します: ["I went to the blue ", " store and …

22
指数の成長とそれ以上に!
チャレンジ 所与の基地1&lt;b&lt;101&lt;b&lt;101 < b < 10、インデックスt≥1t≥1t \ge 1、出力タームxtxtx_t以下のように定義されます: x1=1110x1=1110x_1 = 11_{10} xi+1xi+1x_{i+1}は、xixix_iを基数bbb変換してから、その数字を基数 10で再解釈することによって取得されます。101010 出力は10を基数にする必要があります101010 ベース5、用語5のウォークスルーは次のとおりです。 x1=1110x1=1110x_1 = 11_{10}。 1110=2151110=21511_{10} = 21_{5} sox2=2110x2=2110x_2 = 21_{10}。 2110=4152110=41521_{10} = 41_{5} sox3=4110x3=4110x_3 = 41_{10}。 4110=13154110=131541_{10} = 131_{5} sox4=13110x4=13110x_4 = 131_{10}。 13110=1011513110=10115131_{10} = 1011_{5} sox5=101110x5=101110x_5 = 1011_{10}。 文字列"1011"または整数を出力します1011。 テストケース 注:これらは1つのインデックス付きです base 2, term 5 --&gt; …
18 code-golf  number 

19
二分木の高さを計算する最短プログラムを書く
二分木の高さは、ルートノードからルートから最も遠いノードの子までの距離です。 以下に例を示します。 2 &lt;-- root: Height 1 / \ 7 5 &lt;-- Height 2 / \ \ 2 6 9 &lt;-- Height 3 / \ / 5 11 4 &lt;-- Height 4 バイナリツリーの高さ:4 二分木の定義 ツリーは、符号付き整数値と、他の2つのツリーまたはそれらへのポインターを含むオブジェクトです。 二分木構造体の構造は次のようになります。 typedef struct tree { struct tree * l; struct tree * r; int v; …

30
数字が減り、文字が増える
文字が減少する一方で数字が増加することからランダムにヒントを得た 文字と整数が混在したリスト(たとえば、['a', 2, 3, 'b'])が与えられた場合、アルファベットの1桁だけ文字を増やし(ztoでラップa)、数字を1 減らします。上記の例では、出力はになります['b', 1, 2, 'c']。 入力は、混合タイプのリスト、区切り文字列、文字列のリストなどです。 zにラップしますがa、に1行き0、に0行きます-1。 入力は[a-z]整数のみです。大文字[A-Z]が入力しやすい場合は、大文字を選択できます。 入力は空でないことが保証されます。 入力には、数字のみまたは文字のみを含めることができます。 例: Input Output ['a', 2, 3, 'b'] ['b', 1, 2, 'c'] ['a', 'b', 'z'] ['b', 'c', 'a'] [-1, 0, 257, 'x'] [-2, -1, 256, 'y'] [0, 3, 1, 20382876] [-1, 2, 0, 20382875] 規則と説明 入力と出力は、任意の便利な方法で指定できます。 結果をSTDOUTに出力するか、関数結果として返すことができます。 …

8
この四辺形は周期的ですか?
数学では、周期的な四辺形は頂点がすべて同じ円上にあるものです。つまり、すべての頂点は他の3つの外接円上にあります。詳細については、MathWorldの記事を参照してください。 例 これらの四辺形は周期的です。 この台形は周期的ではありません。 (ウィキペディアの画像) 目的 凸四辺形を形成する反時計回りの順序で4つの頂点の座標が与えられたら、四辺形が周期的であるかどうかを判断します。 座標は整数になります(ただし、外心座標と外接半径は必ずしも整数ではないことに注意してください)。前の段落で暗示されているように、3つのポイントが同一直線上になく、2つが一致しません。 I / O 適切な形式を使用して入力できます。、特に[[x1,x2,x3,x4],[y1,y2,y3,y4]]、[[x1,y1],[x2,y2],[x3,y3],[x4,y4]]複素数のすべての罰金です。 trueとfalseの異なる一貫した値を使用して出力します。 テストケース 正しい: [0,0], [314,0], [314,1], [0,1] [-5,5], [5,-5], [1337,42], [42,1337] [104, -233], [109, -232], [112, -231], [123, -224] 偽: [0,0], [314,0], [314,100], [0,99] [31,41],[59,26],[53,58],[0,314]

15
除数の豊富な番号と不良な番号
前書き 整数の奇妙な世界では、除数は資産に似ており、逆数よりも約数が多い数を「豊富」と呼び、逆数よりも約数が少ない数を「不良」と呼びます。 例えば、番号240124012401 5つの除数有する:1 、7 、49 、343 、24011、7、49、343、24011,7,49,343,2401、その反転、つつ104210421042:、4つだけ有している1 、2 、521 、10421、2、521、10421,2,521,1042。 したがって、240124012401は豊かな数と呼ばれ、104210421042は不十分な数と呼ばれます。 この定義が与えられると、次の2つの整数列を作成できます。 (here we list the first 25 elements of the sequences) Index | Poor | Rich -------|------|------- 1 | 19 | 10 2 | 21 | 12 3 | 23 | 14 4 | 25 | 16 5 …

9
グリッドを三角形に分割する
ゴール この課題の目標は、次の機能を生成することです n、n X 1グリッドを三角形に分割する方法の数を計算する。三角形のすべての頂点がグリッドポイント上にあります。 例 たとえば、2 x 1グリッドを分割するには14の方法があるためf(2) = 14、次のパーティションを使用して して、それぞれ2、2、2、2、4、および2つの異なる方向に分割します。 得点 これはcode-golfなので、最短のコードが優先されます。

17
番号に連続した降順の番号はいくつありますか?
2019年が到来し、おそらく誰もがこの数字の特異性に気づいたでしょう:実際には、連続した降順の数字を表す2つのサブ番号(20と19)で構成されています。 チャレンジ 数所与xのサブ数を取ることによって形成することができる数値を降順、連続の最大配列の長さを返しますx。 ノート : サブ番号に先行ゼロを含めることはできません(たとえば、1009に分割することはできません)1009 連続および降順は、シーケンス内の数値が前の数値-1またはと等しくなければならないことを意味します(たとえば、連続していないために分割できない、など)ni + 1= n私− 1n私+1=n私−1n_{i+1} = n_{i}-1525,2522 ≠ 5 - 1 シーケンスで例えば、完全な番号を使用することによって取得する必要があり7321ます破棄することはできません7シーケンスを取得すると3、2、1 唯一の1つの配列が番号から得ることができ、例えば3211098二つの配列に分割することができない3、2、1および10、9、8 入力 整数(&gt;= 0):数字、文字列、または数字のリストを指定できます 出力 減少するサブ番号の最大数が指定された単一の整数(この番号の下限はであることに注意してください1。つまり、番号は長さ1の降順で構成されます) 例: 2019 --&gt; 20,19 --&gt; output : 2 201200199198 --&gt; 201,200,199,198 --&gt; output : 4 3246 --&gt; 3246 --&gt; output : 1 87654 --&gt; 8,7,6,5,4 --&gt; …
18 code-golf 

22
ssTTsSTtRrriinInnnnNNNIiinngg
チャレンジ 文字列の最後の文字を除く各文字について、次の手順を実行します。 現在の文字を出力します。 続いて、次のリストから1〜5のランダムな回数をランダムに出力します(両端を含む)。 現在のキャラクター 文字列の次の文字 現在いるキャラクターのスイッチケースバージョン 文字列の次の文字のスイッチケースバージョン。 テストケース String -&gt; SSSTSStrTrIiinIIngn , . , . , . Hello world! -&gt; ,,, .. , ,, .... , , .. .. . HHH HHEeelLlLllooO wwOworOOrrrRllDd!!D Programming Puzzles and Code Golf -&gt; PrPPrRrOooooogggRgGraAraaaMMMmmmimMIiininGGgG PPPPuZzZZzZzzZzllLLEEeEsEsssS a aANnNddD C COCoooOOdeDe E GGGoOllFFf ノート 文字がアルファベットの一部である場合(AZおよびaz)にのみ、スイッチケースバージョンの文字を適用する必要があります。 …

8
Ternary-ifコンバーター
Java / .NET / C / JavaScript /など。ternary-ifを使用してif文を短縮できます。 例(Javaの場合): // there is a String `s` and an int `i` if(i&lt;0)s="Neg";else if(i&gt;0)s="Pos";else s="Neut"; ternary-ifで短縮できます: s=i&lt;0?"Neg":i&gt;0?"Pos":"Neut"; チャレンジ: 入力:単一の変数を設定する通常のif-else(ネスト可能)。 出力:変換されたternary-if。 チャレンジルール: 括弧なしですべてのif-elseケースが可能であると想定できます(したがって、各if / else-if / elseブロックには単一のボディがあります)。 各スペースの後の単一のスペースelse(を含むelse if)を除き、スペース、タブ、改行はないものと想定できます。 使用される変数名は常に単一の小文字([a-z])であると想定できます。 変数に指定される値は、次のいずれかです。 文字列(空白/タブ/改行なし)、二重引用符(すなわち囲まれる"Test"、"SomeString"、"Example_string"、など)。文字列にサブストリングifまたはが含まれることはelseなく、スペース、タブ、改行、(エスケープされた)二重引用符、または文字が含まれないことも想定できます=。文字を含めることができます&gt;&lt;(){}[];?:!&amp;|が、印刷可能なASCII範囲(['!' (33), '~' (126)])のみになります。 整数(すなわち0、123、-55、など) 小数(すなわち0.0、0.123、-55.55、など) 値が混在することはありません。したがって、割り当てられる変数はすべて整数であり、一部は整数ではなく、一部は文字列ではありません。 括弧内の条件は、次の文字を含めることができ=&lt;&gt;!+-/*%&amp;|[]、a-z、0-9。内側の括弧が存在しないと仮定することもできます。また、複数の文字が使用される(混乱させる)フィールドは存在しないと仮定することもできます(などif(if&lt;0))。 のi*=10代わりにのようなショートカットはないと仮定できi=i*10ます。 ぶら下がりのelseケースを処理する必要はないので、すべてifをペアリングできますelse。すなわちif(a)if(b)r=0;else r=1;、可能な入力ケースではありません。if(a)if(b)r=0;else r=1;else r=2;またはif(a&amp;&amp;b)r=0;else …
18 code-golf  string 

30
64ビット整数の先行ゼロの数を見つける
問題: 64ビット符号付き整数の先行ゼロの数を見つける ルール: 入力を文字列として扱うことはできません。算術演算とビット演算がアルゴリズムを駆動するものであれば何でもかまいません 出力は、言語に関係なく、数値の64ビット符号付き整数表現に対して検証する必要があります デフォルトコードのゴルフ規則が適用されます バイト単位の最短コードが勝つ テストケース: これらのテストでは、2の補数の符号付き整数を想定しています。言語/ソリューションに符号付き整数の異なる表現がないか、使用していない場合は、それを呼び出して、関連する可能性のある追加のテストケースを提供してください。倍精度に対処するいくつかのテストケースを含めましたが、リストすべきその他のテストケースをお気軽にご提案ください。 input output 64-bit binary representation of input (2's complement) -1 0 1111111111111111111111111111111111111111111111111111111111111111 -9223372036854775808 0 1000000000000000000000000000000000000000000000000000000000000000 9223372036854775807 1 0111111111111111111111111111111111111111111111111111111111111111 4611686018427387903 2 0011111111111111111111111111111111111111111111111111111111111111 1224979098644774911 3 0001000011111111111111111111111111111111111111111111111111111111 9007199254740992 10 0000000000100000000000000000000000000000000000000000000000000000 4503599627370496 11 0000000000010000000000000000000000000000000000000000000000000000 4503599627370495 12 0000000000001111111111111111111111111111111111111111111111111111 2147483648 32 0000000000000000000000000000000010000000000000000000000000000000 2147483647 33 0000000000000000000000000000000001111111111111111111111111111111 2 62 …

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