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

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

10
Lehmer-Comtetシーケンス
レーマー-Comtet配列は、その配列である(N)であるn個の第誘導体F(X)= X Xに対してXで評価として、X = 1。 仕事 入力として負でない整数を取り、Lehmer-Comtetシーケンスのn番目の項を出力します。 これはコードゴルフなので、ソースコードのファイルサイズを最小限に抑える必要があります。 テストケース OEIS 5727 最初の2つの用語を順番に示します(OEISからコピー) 1, 1, 2, 3, 8, 10, 54, -42, 944, -5112, 47160, -419760, 4297512, -47607144, 575023344, -7500202920, 105180931200, -1578296510400, 25238664189504, -428528786243904, 7700297625889920, -146004847062359040, 2913398154375730560, -61031188196889482880

4
子供向けロボットで遊ぶ-どの手紙に届きますか?
TL; DR:文字の配列と配列の開始位置にあるロボットを指定して、動きのある文字列を読み取ることができるアルゴリズムを書きます(F「進む」、R「右に90度回転する」、「90度L回転する」左」)、ロボットの終了位置を計算します。全文の詳細。 自宅には子供向けの非常にシンプルなプログラム可能なデバイスがあります。ボタンで車両を前進させたり、左に90度回転させたり、右に90度回転させたりするためのボタンがあります。これに似たもの: また、次のような文字のフォームマットもあります。 このすべての目的は、子供たちにアルファベットとプログラミングの基礎の両方を一度に教えることです。 チャレンジ フォームマットを次のようにランダムに配置したとします。 +---+---+---+---+---+---+---+ | E | R | L | B | I | X | N | +---+---+---+---+---+---+---+ | O | A | Q | Y | C | T | G | +---+---+---+---+---+---+---+ | F | W | H | P | D …

30
標準スクラッチとは何ですか?
ゴルフでは、コースの標準スクラッチは次の式を使用して計算されます。 (3*num_of_3_par_holes + 4*num_of_4_par_holes + 5*num_of_5_par_holes) - difficulty_rating あなたの仕事は、これらの4つの入力を考慮して、ゴルフコースの標準スクラッチを計算することです。 次の形式の標準形式で入力する必要があります [num_of_3_pars, num_of_4_pars, num_of_5_pars], difficulty rating しかし、バイトを節約する場合、多くの人は異なる方法で入力を受け取ります。 関数から戻るなど、メタで受け入れられたメソッドによって最終結果を出力する必要があります。 これはコードゴルフであるため、最短のコードが勝ちます!
12 code-golf  math  number 

17
キャップ付きストリングラダー
文字列を考えるsと、正の整数N、徐々にまで、より多くの各文字を複製しN、重複した後に滞在Nするまで、重複N離れた端から文字、再びステップダウン。 例えば、与えられたabaloneと3: a we start with 1 copy bb then 2 copies aaa then 3 copies, which is our second parameter lll so we continue using 3 copies ooo until we reach the end nn where we use 2 copies e and then finally 1 copy 結果はになりますabbaaalllooonne。 文字列の長さは以上で2N、からaまでの文字のみであることが保証されていますz。 その他のテストケース: N …
12 code-golf  string 

6
この文字列は有効なFENですか?
チャレンジ 文字列入力を関数パラメーターとして、またはstdinから取得し、それが有効なFEN文字列かどうかを判断するプログラムまたは関数を作成します。 入力 入力には次の文字のみが含まれると想定できます(大文字と小文字が区別されます) pkqrbnPKQRBN12345678/ 入力の長さは常に最小1文字、最大100文字です。 出力 出力は、真偽値でなければなりません。これらは、一貫している限り、任意の値にすることができます(すべての真実の結果は同じ出力を持ち、すべての偽の結果は同じ出力を持ちます)。正確に2つの可能な出力が必要です。 有効とみなされるもの 小文字は黒い部分を表し、大文字は白い部分を表します。 チェスのゲームで、現在の位置にあるピースが存在することを確認する必要があります。 各プレイヤーは常に正確に1つのキング(k / K)を 持ちます。各プレイヤーは8個以下のポーン(p / P)を 持ちます。各プレイヤーは通常1 *クイーン以下(q / Q)を 持ちます。 2 *を超えるルーク(r / R) 各プレイヤーは通常2 *を超える騎士(n / N)を 持たない各プレイヤーは通常2 *を超える司教(b / B)を持たない* プレイヤーが「これら4つのピースのいずれかにポーンをプロモートします。 各プレイヤーのポーン、クイーン、ルーク、ナイト、ビショップの合計が15を超えることはありません ピースの総数と空の四角(数字で表示)の合計は、ランクごとに常に正確に8になるはずです。また、常にスラッシュで区切られた8つのランクが常に存在する必要があります。 無視できるもの 指定されたポジションでプレーできるかどうか、またはポジションが合法である場合、与えられた数量でピースが存在できるかどうかについて心配する必要はありません。 プレーヤーターン、キャスティング権、パッサンのようなFENストリングのさらなる複雑さは無視できます。 これはコードゴルフです。バイト単位の最短プログラムが優先されます。通常の抜け穴とルールが適用されます。 テストケース 入力 rnbqkbnr / pppppppp / 8/8/8/8 / PPPPPPPP …

3
倍増カスケード
最初に、数学的な間奏、短く、あなたの価値があります: の場合0 < a < 4、ロジスティック関数 f(x) = ax(1-x)は間隔[0,1]を内部にマッピングします。これは、反復ゲームをプレイできることを意味します。たとえば、a = 2の場合、初期値0.3は0.42になり、0.4872になります。 パラメーターaが増加するfと、次の意味で2次関数はより複雑になります。 0 < a < 1 すべての初期値は0に向かって反復します。 1 < a < 3 0は反発になりますが、すべての反復を引き付ける新しい固定小数点(a-1)/ aがあります。 3 < a < 1+sqrt(6) 新しい固定点は反発しますが、2つの引き付け点のサイクルが表示されます。 3.44949... < a < 3.54409... 2サイクルは反発しますが、4つの引き付け点のサイクルが表示されます。 等 フェイゲンバウムは、これらのパラメーター間隔の長さが4.6692...、フェイゲンバウム定数にますます近づく速度で減少することに気付きました。素晴らしい発見は、この期間2 分岐シーケンスは、(二次放物線のように)増加してから減少する関数によって共有される一般的な現象であるということです。これはカオスの普遍性に関する最初のレポートの1つでした。 さあ、挑戦しましょう!選択した精度でファイゲンバウム定数を計算する最短のコードを作成します。ここでのポイントは、グーグルで検索した数値をエンコードしてシステムをごまかすことではなく、実際にコンピューターに値を見つけさせることです。参考のため、30桁の定数は次のとおりです。 4.669201609102990671853203821578
12 code-golf  math  number 

11
リストのリストを悲しいリストに解析する
この課題では、リストのリストをより単純なリスト形式に解析する必要があります。 この課題は、私のsadflakパーサーに基づいています。私のsadflakパーサーでは、すべての()が削除され、リストの先頭にある()の合計に置き換えられて、プログラムの実行が速くなります。 Sad-Listに解析するには、これを行う必要があります(Python実装のこと、タプルのタプルを使用します): def sadlistfunc(list): new-sadlist = [0] for i in list: if i == (): new-sadlist[0]+=1 else: new-sadlist.append(sadlistfunc(i)) これは再帰的な関数です。リストの場合、リスト入力からの()の数で始まる新しいリストを開始し、このリストの残りはリスト入力からの()でないすべてのリストの悲しいリストバージョンです。リストを返します。 入力: いくつかの異なる形式で入力することができます。 あなたはそれをリストとして取ることができます あなたはタプルとしてそれを取ることができます あなたはそれを文字列として取ることができます 文字列として使用する場合は、brain-flakに表示されるように、いくつかのブラケットセットを使用する必要があります。文字1と2は使用できません ただ合理的です 入力は常に1つのリスト内にありますが、プログラムは入力外の暗黙的なリストレイヤー、つまり()()()=(()()())を想定するか、または選択しない場合があります。例は明示的な外部リストを使用します 出力: リスト、タプル、文字列、その他何でもかまいません。メタコンセンサスと同様に、合理的な出力形式を使用できます。 例: (()()()) = [3] (((()))) = [0,[0,[1]]] ((())()(())) = [1, [1], [1]] () = invalid input, if the outside bracket …

22
アスキールービックキューブ
これと次のチャットに触発された: あなたの仕事は以下を出力することです: _ _ _ /_/_/_/\ /_/_/_/\/\ /_/_/_/\/\/\ \_\_\_\/\/\/ \_\_\_\/\/ \_\_\_\/ キューブの外観を変更しない限り、余分な先頭または末尾の空白を使用できます。通常どおり、関数から上記または文字列のリストを返すことは許可されています。 これはcode-golfなので、バイト単位の最短回答が勝ちです!

13
数を二乗和として書く方法はいくつありますか?
仕事 2つの整数dとが与えられた場合、平方和としてn表現する方法の数を見つけます。つまり、そのようなことは、すべての整数の整数です。2つの異なる値(たとえばと)を交換することは、元のソリューションとは異なると見なされることに注意してください。ndn == r_1 ^2 + r_2 ^2 + ... + r_d ^2r_m1 ≤ m ≤ dr_1r_2 たとえば、45という数字は2つの正方形の合計として8つの異なる方法で記述できます。 45 == (-6)^2 + (-3)^2 == (-6)^2 + 3^2 == (-3)^2 + (-6)^2 == (-3)^2 + 6^2 == 3^2 + (-6)^2 == 3^2 + 6^2 == 6^2 + (-3)^2 == 6^2 + …

19
ルックアップインデックスを作成する
文字列を指定すると、最初の列に出現順に文字列の一意の文字があり、後続の列には文字列内のその文字のインデックスがゼロまたは1ベースのインデックスを使用してリストされているテーブルを返します。左端の列が垂直に配置されている限り、水平方向の空白は問題になりません。インデックスは左から右へ昇順でなければなりません。 例 ゼロベースのインデックスを使用し、「abracadabra」を指定すると、戻ります a 0 3 5 7 10 b 1 8 r 2 9 c 4 d 6 1から始まるインデックスを使用し、「3141592653589793238462643383279503」を指定すると、以下が返されます。 3 1 10 16 18 25 26 28 34 1 2 4 4 3 20 24 5 5 9 11 32 9 6 13 15 31 2 7 17 22 …

8
与えられた化合物のミスターを見つけてください!
チャレンジ 化学式が与えられたら、化合物のM rを出力します。 方程式 化合物の各要素の後には、化合物の原子の数を示す数字が続きます。数字がない場合、化合物にはその原子が1つしかありません。 以下に例を示します。 エタノール(C 2 H 6 O)はC2H6O、2つの炭素原子、6つの水素原子、1つの酸素原子がある場所です。 水酸化マグネシウム(MgO 2 H 2)MgO2H2は、1つのマグネシウム原子、2つの酸素原子、2つの水素原子がある場所です。 角括弧を処理する必要は決してなく、各要素は式に一度だけ含まれることに注意してください。 ほとんどの人はおそらく最も快適だと感じる順序に固執するでしょうが、厳密な順序付けシステムはありません。例えば、水のいずれかとして与えられてもよいH2O、またはOH2。 M r 注:ここでは、式質量が分子質量と同じであると仮定します 化合物のM r(分子量)は、分子内の原子の原子量の合計です。 サポートしなければならない唯一の元素とその小数点以下1桁までの原子量(希ガスを含まないカルシウムへの水素)は次のとおりです。こちらにもあります H - 1.0 Li - 6.9 Be - 9.0 B - 10.8 C - 12.0 N - 14.0 O - 16.0 F - 19.0 Na - 23.0 …

7
Youtubeプレイリストの動画を数える
チャレンジ Youtubeプレイリストを指定して、その中のビデオの数を出力します。 I / O プレイリストはURLとして提供されます。たとえば、https://www.youtube.com/playlist?list=PL_3jnZNPYn7qUatgDYBS5NShkfXoehSRC(これは友人が私にK-Popに夢中にさせてくれて、私はそれが好きではないのでK-Popを聞かせようとするために私に送ったプレイリストです:P) プレイリストへのリンクの形式は次のとおりですhttps://www.youtube.com/playlist?list=<id>。入力はURLではなく、IDです。 出力は、このプレイリストにあるビデオの数を示す単一の整数です。ビデオの合計数または削除されていないビデオのいずれか、どちらかがあなたにとってよりゴルフ好きな方を出力できます。 テストケース https://www.youtube.com/playlist?list=PL_3jnZNPYn7qUatgDYBS5NShkfXoehSRC -> 12 https://www.youtube.com/playlist?list=PLIEbITAtGBebWGyBZQlkiMXwt30WqG9Bd -> 114 OR 1 テストケースを追加してください。

14
ファイルにゼロを埋め込む
今日のタスクは、既存のファイルを取得し、特定のサイズに達するまでゼロを追加することです。 現在のディレクトリ内のファイル名fとバイト数を取得するプログラムまたは関数を作成する必要がありますb。の元のコンテンツを維持しながら、新しいサイズがバイトになるように、末尾にfゼロ(ASCIIバイトではなくヌルバイト)を書き込む必要がありbます。 あなたは、と仮定してよいfことは、当初よりも大きくないと、あなたはそれを完全なアクセス許可を持っていることを、その名前だけでASCII英数字を持っていbますが、同じ大きようなものであってもよいb、と無限の空きディスク容量があること。 f空でないと仮定したり、すでにヌルバイトが含まれていないと仮定したりすることはできません。 実行が終了した後、他の既存のファイルを変更したり、新しいファイルを作成したりしないでください。 テストケース fの内容| b | fの結果の内容 12345 | 10 | 1234500000 0 | 3 | 000 [空] | 2 | 00 [空] | 0 | [空の] 123 | 3 | 123
12 code-golf  file-system  code-golf  code-golf  string  code-golf  string  code-golf  random  game  compression  code-golf  array-manipulation  sorting  code-golf  number  arithmetic  primes  code-golf  geometry  code-golf  code-golf  decision-problem  regular-expression  code-golf  string  math  code-challenge  restricted-source  integer  palindrome  code-golf  string  palindrome  code-challenge  busy-beaver  code-golf  ascii-art  code-golf  string  code-golf  string  permutations  code-golf  code-golf  string  permutations  code-golf  number  primes  function  set-theory  code-challenge  hello-world  code-golf  math  number  decision-problem  code-golf  code-golf  sequence  arithmetic  integer  code-golf  math  number  arithmetic  decision-problem  code-golf  kolmogorov-complexity  alphabet  code-golf  combinatorics  graph-theory  tree-traversal  code-golf  set-theory  code-golf  interpreter  brainfuck  substitution  code-golf  quine  permutations 

3
この咬傷は私のものでしたか?
昨日、サンドイッチをテーブルに置いた。私が今日起きたとき、それはかみ傷がありました...それは私のものでしたか?思い出せない... 問題: サンドイッチと私のかみ傷のパターンを見て、それが私のかみ傷だったかどうか教えてください。 例: 例1: 私の噛みつきパターン: .. . サンドイッチ: ##### .#### ..### 出力: truthy 例2: 私の噛みつきパターン: .. .. サンドイッチ: ...## ..### .#### 出力: falsy 例3: 真実と見なされる回転が少なくとも1つある場合、出力は真実です。 私の噛みつきパターン: . . . サンドイッチ: ##. #.# .## 出力: 2つの可能な回転(北東または南西の角を噛む)。 truthy 有効なバイト: .. . ... . . . . . .. . . .. …

2
四角がいくつありますか?
なる非空の2Dアレイを所与0と1、4隅全てである正方形の数を見つけます1。正方形は「直立」である必要はありません。すべての行が同じ長さであることが保証されています。 合理的な入出力方法が許可されています。 テストケース: 0001000 1000000 0000000 0000100 0100000 これはを返します1。 10101 00000 10100 00000 10001 これはを返します2。 1111 1111 1111 1111 これはを返します20。 これはcode-golfです。バイト単位の最短回答が優先されます。標準の抜け穴が適用されます。

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