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

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

30
四角錐番号
A000330-OEIS 仕事 タスクは簡単です。indexを指定すると、iその位置の値がwhere 0までの平方和になるシーケンスを生成します。ii >= 0 例: Input: 0 Output: 0 (0^2) Input: 4 Output: 30 (0^2 + 1^2 + 2^2 + 3^2 + 4^2) Input: 5 Output: 55 (0^2 + 1^2 + 2^2 + 3^2 + 4^2 + 5^2) 仕様: 入力を受け取らず、シーケンスを無期限に出力できます。 シーケンスの要素を入力Nおよび出力できNthます。 シーケンスのN最初のN要素を入力および出力できます。

13
タートルプライムですか?
みんな知っているように、それはずっと亀です。しかし、それはずっと下のプライムですか? 数値は、次の条件を満たす場合、「タートルプライム」と見なされます。 1) It is prime. 2) It is possible to remove a single digit leaving a prime number. 3) Step 2 can be repeated until left with a single digit prime. たとえば、239は「タートルプライム」です。これは、23どちらか2またはに縮小できるため3、両方ともプライムです。それはまたに低減することができ29、その後2。151タートルプライムではありません。(プライムではない15)、51(プライムではない)、またはになり11ます。11は素数ですが、に減らすことができますが1、そうではありません。 正の整数を指定して、それが「タートルプライム」かどうかを判断します。出力は、trueまたはfalseの値に対して同じ出力を提供する限り、どのような形式でもかまいません。 テストケース: input -> output 1 -> false 2 -> true 17 -> true 19 -> false …
28 code-golf  primes 

30
ユニークな双子を見つける
2つの配列/リスト/非負整数のベクトルAとBが与えられます。あなたの仕事は、出力の整数最高であるNの両方に表示されていることをAとB、及び両方でもユニークであるAとB。 そのような番号が少なくとも1つあると仮定することができます。 任意の合理的な入力と出力の方法/フォーマットが許可されます。 これらの抜け穴は禁止されています。 これはcode-golfであるため、すべてのプログラミング言語で最短のコードが優先されます! テストケース: A、B->出力 [6]、[1、6]-> 6 [1、2、3、4]、[4、5、6、7]-> 4 [0、73、38、29]、[38、29、73、0]-> 73 [1、3、4、6、6、9]、[8、7、6、3、4、3]-> 4 [2、2、2、6、3、5、8、2]、[8、7、5、8]-> 5 [12、19、18、289、19、17]、[12、19、18、17、17、289]-> 289 [17、29、39、29、29、39、18]、[19、19、18、20、17、18]-> 17 [17、29、39、29、29、39、18、18]、[19、19、18、20、17、18]-> 17

14
TeX / LaTeXでのゴルフのヒント
TeX / LaTeXでゴルフをするためのヒントは何ですか?回答ごとに1つのヒントを投稿してください。各ヒントは、少なくともTeX / LaTeXにある程度固有のものです。 コンテキスト:この答えに気づき、TeX / LaTeXにヒントの質問はないので、これを作成しています。TikZでゴルフをするための狭い質問のヒントと重複しています(TikZはTeX / LaTeX上の特定のマクロパッケージであるため):この質問への回答はおそらくそこにも当てはまりますが、逆には当てはまりません。
28 code-golf  tips 

12
こんにちは世界!準共通文字付き
ご存知の方もいるかもしれませんが、デニスのすばらしい「Try It Online」に言語を取り入れるには!、こんにちは、世界!プログラムが必要です。最近、デニスはウェブサイトからこれらのプログラムをロードする方法を押し上げました。2017年7月27日現在、これらのプログラムで使用されている文字の頻度別のJSON ペーストビンを次に示します。 これらのキャラクターの中には愛が必要なものもあるので、あなたの課題はHello、World!を出力することです。(できればこのプロセスに関係する言語で)、以下に指定された文字のみを使用します。これらの文字は、2つの最も一般的な文字、およびの間10で使用されるすべての99文字で0あり、を含んでいます。 0 $&*?ABCDEFGIJKLNPQRSTUXYZ\`gjkqwxyz{}÷≤≥=║_ キャラクターの使用方法は、コードポイントやバイト値ではなく、通常のプログラムでの外観に基づいている必要があります。 そのセットから少なくとも1文字を使用する必要があるため、長さ0のプログラムは無効です。 これはcode-golfであるため、バイト単位の最短回答が優先されます。 回答が有効かどうかを確認するJSFiddle

9
火災伝播シミュレータ
次のような行列があると仮定します。 11111 12221 12321 12221 11111 このマトリックスは地形を表し、各セルは地形の一部を表します。各セルの数値は、その可燃性に応じて、地形の一部を完全に燃やす必要がある時間(測定単位が必要な場合は分単位)を表します。特定の位置(セル)で火災が発生した場合、そのセルは、隣接するセル(対角線ではなく、水平および垂直のみ)に伝播する前に完全に燃焼する必要があります。そのため、中央の位置で火災が発生した場合、火災には次のことが必要です。 11111 11111 11111 11011 10001 00000 12221 3 m. 12221 2 m. 12021 1 m. 11011 1 m. 00000 1 m. 00000 12321 -----> 12021 -----> 10001 -----> 00000 -----> 00000 -----> 00000 12221 12221 12021 11011 00000 00000 11111 11111 11111 11011 …

1
テキストのスペルミスを数えます。コード内のスペルミスの数を最小限に抑える
2つの入力を取るプログラムまたは関数を作成します。 テキストメッセージ この Githubファイルに表示される英語の辞書(約60000語を含む) メッセージのスペルエラーの数を出力します(定義とテストケースについては以下を参照)。 辞書は、関数へのパラメーターとして、プログラムが検出することを予期する事前定義ファイルとして、コード内のハードコーディングされたデータとして、またはその他の適切な方法で受け取ることができます。 コード自体はテキストメッセージのように見えるはずで、スペルミスは最小限です。そのため、コードを入力としてコード自体に渡すことで、コードのスコアを計算します。 勝者は、スコアが最も低いコードです(可能な最小スコアは0です)。同じスコアの回答が複数ある場合、勝者はコードサイズ(文字数)によって決定されます。それでも2つの答えが結びついている場合、勝者は早い方です。 必要に応じて、入力メッセージはASCII(バイト32 ... 126)であり、改行は従来の方法(1バイト "10"または2バイト "13 10")でエンコードされ、空ではないと想定できます。ただし、コードに非ASCII文字が含まれている場合は、非ASCII入力もサポートする必要があります(したがって、独自のスコアを計算できます)。 キャラクターは次のクラスに分類されます。 文字 a ... zおよびA ... Z 空白(ここではスペース文字または改行文字として定義されます) 句読点 . , ; : ! ? 文末 . ! ? ごみ(その他すべて) 言葉は(つまり、どちらも先行していないにも文字が続く)最大となる文字の配列として定義されます。 文は文末でない文字の最大の配列として定義されます。 文字は、次のいずれかのスペル規則に違反している場合、スペルエラーです。 文字は辞書の単語に属している必要があります(または、言い換えると、辞書に表示されていない長さNの各単語はN個のスペルミスとしてカウントされます) 最初の空白文字を無視する文の最初の文字は大文字でなければなりません 前のルールで指定された文字を除き、すべての文字は小文字でなければなりません 句読点は、文字またはゴミの後にのみ使用できます 改行文字は、文末文字の後にのみ許可されます 空白文字は、メッセージの先頭および空白文字の後には使用できません ガベージはありません(つまり、各ガベージ文字のカウントはスペルミスです) さらに、最後の文は空にするか、改行文字1つだけで構成する必要があります(つまり、メッセージは文末文字とオプションの改行で終了する必要があります-ルール8と呼びましょう)。 テストケース(各文字の下に違反するルールがあります。=>必要な答えは後です): Here is my 1st …

12
Terra Mystica:サイクリングパワー
ボードゲームTerra Mysticaには、主要なリソースの1つであるパワーに関する非常に興味深いメカニズムがあります。銀行から力の単位を獲得して消費する代わりに、各プレイヤーは、I、II、IIIとラベル付けされた3つの「ボウル」に分配された正確に12の力の単位でゲームを開始します。電力を獲得して消費すると、これらのボウル間で電力が移動します。 ユニットを消費するには、ボウルIIIからボウルIに移動します(ボウルIIIにユニットがある場合)。 パワーのユニットを獲得したときに、ボウルIにユニットがある場合、それをボウルIIに移動します。ボウルIにユニットがなく、ボウルIIにユニットがある場合は、ボウルIIIに移動します。すべてのユニットがすでにボウルIIIにある場合、何も起こりません。 一度に複数のユニットを獲得または使用すると、それらは一度に1ユニット処理されます。 以下に例を示します。たとえば、プレーヤーは次の電力配分で開始されます(順番に与えられますI | II | III)。 5 | 7 | 0 彼らが数回力を得て費やすと、彼らの力は次のように変わります。 5 | 7 | 0 Gain 3 ==> 2 | 10 | 0 Gain 6 ==> 0 | 8 | 4 (move 2 power from I to II, then the remaining 4 from II …

30
「abc」および「cba」
タスクは簡単です。1つの言語で'abc'実行すると文字列のみが出力され、別の言語で実行すると文字列のみが出力される単一のコードスニペットを記述します'cba'。プログラムは何も入力しないでください。 これはコードゴルフの挑戦です。

11
大/小文字を区別する文字列をもっと楽しく
この課題に触発された(または、より具体的には誤読する)ことで、次の課題を思いつきました。 入力文字列Sを指定すると、すべて大文字とすべて小文字の順序が逆になります。文字以外の文字はすべてそのままにしておきます。例えば: 大文字W(最初の大文字)がH(最後の)に置き換えられたことに注意してください。小文字についても同様です。「d」(最初)はe(最後)と交換され、l(2番目)はl(ペン最後)に置き換えられます...文字以外の文字はすべてそのまま残ります。 入力 入力は、32〜126の範囲のASCII文字のみの文字列です。 入力は少なくとも1文字以上であることが保証されており、言語の制限を超えることはありません。 出力 説明どおりに文字を交換した同じ文字列。 追加のルール 標準的な抜け穴は禁止されています 回答は、スニペットまたはREPLエントリではなく、完全なプログラムまたは関数でなければなりません。 code-golf、バイト単位の最短回答が勝ちます。 テストケース A A Ok Ok OK KO Hello, World! Wdlro, Holle! 0123456789 0123456789 The quick brown Fox jumps over the lazy doge Feg odyza lehtr Tev ospmu jxon wor bkci uqeh odd ddo racecar racecar EtOn Em OsN …
28 code-golf  string 

12
自己検証コードを書く
入力として文字列を受け取り、文字列が次の規則に従っているかどうかに応じて、trueまたはfalseの値を出力するコードを記述します。 各文字を互いの上にスタックし、バイナリに変換して各列を合計すると、すべての合計が同一になります。入力文字列には、印刷可能なASCII文字(コードポイント32〜126)のみが含まれると想定できます。 例として: 入力O5vy_+~は、そのバイナリ表現が次のとおりであるため、真の値を返す必要があります。 1001111 | O 0110101 | 5 1110110 | v 1111001 | y 1011111 | _ 0101011 | + 1111110 | ~ ------- 5555555 <- Sum of bits in each column. Should give a truthy value. 入力PPCGは、バイナリ表現が次のとおりであるため、偽の値を返す必要があります。 1010000 | P 1010000 | P 1000011 | C 1000111 …

28
要素単位の文字列乗算
この課題に触発されて(タイトルに@cairdcoinheringaahingに感謝します!)、あなたの仕事は2つの印刷可能なASCII文字列を取得し、次のルールで要素ごとに乗算することです。 どのように機能しますか? 2つの文字列(たとえばsplitとisbn)が与えられた場合、最初に長い文字列を切り捨てて長さが等しくなるようにし、次にASCIIコードを決定します。 split -> spli -> [115, 112, 108, 105] isbn -> isbn -> [105, 115, 98, 110] 次のステップでは、各コードを[0..94]減算することにより、それらを範囲にマップし32ます。 [115, 112, 108, 105] -> [83, 80, 76, 73] [105, 115, 98, 110] -> [73, 83, 66, 78] 次に、要素ごとにモジュロを乗算します95(印刷可能な範囲に留まるため)。 [83, 80, 76, 73] ⊗ [73, 83, 66, 78] -> [74, …

30
レターランを長くする
小文字のASCII文字の空でない文字列を指定a-zすると、同じ文字の連続した「実行」がその文字のもう1つのコピーによって延長された文字列を出力します。 例えば、dddogg(3 d「S、1 o、2 gの)になるddddooggg(4 d「S、2 o「S、3 g「S)。 これはコードゴルフです。バイト単位の最短回答が勝ちです。 テストケース aabbcccc-> aaabbbccccc ドアベル-> ddooorrbbeelll uuuuuuuuuz-> uuuuuuuuuuzz q-> qq xyxyxy-> xxyyxxyyxxyy xxxyyy-> xxxxyyyy
28 code-golf  string 

30
三角形を数えます!
私たちは「二乗」という用語に使用されているn個の計算を意味するように、N 2を。また、「立方体」nという用語は、n 3を意味します。そうは言っても、なぜ私たちも数字を三角形にできないのでしょうか? 数字を三角形にする方法は? まず、数字を選びましょう53716。 以下に示すように、辺の長さが数字の桁数に等しい平行四辺形に配置し、2つの辺を斜めに配置します。 53716 53716 53716 53716 53716 さて、それをΔにしたいですね これを行うには、直角三角形に収まらない辺をトリミングします。 5 53 537 5371 53716 この例では、各行の合計を取得し[5, 8, 15, 16, 22]ます: 5-> 5 53-> 8 537-> 15 5371-> 16 53716-> 22 リストを合計して[5, 8, 15, 16, 22]、結果をにし66ます。これはこの数字の三角形です! 仕様とルール 入力は、負でない整数n(n≥0、n∈Z)になります。 入力を受け取り、許可された手段で出力を提供できます。 入力は、整数、整数の文字列表現、または数字のリストとしてフォーマットできます。 デフォルトの抜け穴は許可されていません。 これはcode-golfなので、バイト単位の最短コードが勝ちです! その他のテストケース 入力->出力 0-> 0 1-> 1 …

24
2つの数値の合計、積、差を結合する演算子
チャレンジ: ソーシャルネットワークには、次のような馬鹿げたパズルが流れています。 8 + 2 = 16106 5 + 4 = 2091 9 + 6 = ? 2つの正の整数与えられた場合、その関数又は演算子を実装xし、yそのようなことはx > y > 0、のように正しい答えを与える整数答えの桁の数字である、x * yの数字が続くx + yの数字が続きますx - y。とても簡単です。 ルール: 標準の抜け穴は許可されていません。 これはコードゴルフなので、バイト単位の最短コードが優先されます。 入力データの検証がされていない必要。このプログラムは、無効な入力が与えられるとクラッシュするか、ゴミを返す可能性があります。 数値関数と演算子(整数と浮動小数点、数学ライブラリ関数、および数値を受け取って返す他の関数を含む)を使用できます。 必要に応じて、数値の桁数を返す関数を使用できます。 コード内の任意の場所で文字列または任意の種類の連結を使用することはできません。 結果は、言語で適用されるいずれかで返されるか、スタックにプッシュされる場合があります。結果は文字列ではなく整数でなければなりません。 サンプルコード: Dyalog APL: 次のコードは、という名前の2項演算子を作成しますX。 X←{(⍺-⍵)+((⍺+⍵)×10 * 1 +⌊10⍟⍺-⍵)+⍺×⍵×10 *(2 +⌊10⍟⍺+⍵)+⌊10⍟⍺- ⍵} 説明: APLでは、右から左に評価します。 ⍺ …

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