タグ付けされた質問 「test-battery」

多数のテストケースを通じてプログラムの出力を実行することをスコアリング基準に含む問題。

2
最前面のパズルソルバーを構築する
トップフロントサイドパズルは、3つの直交ビュー(上面図、正面図、側面図)が与えられた(通常は立方体)ブロックの3D形状を構築する必要があるパズルです。 たとえば、次のように上面図、正面図、および側面図を指定します。 Top: Front: Side: . . . . . . . . . . . . . x x . . x x . . x x . . x x . . x x . . x x . . . . . . . . . . …

3
ギャップを埋める
白の背景と黒のドットのセットを備えた白黒の画像が与えられたら、黒のピクセルの各ペアの間にパスがあるように、白のピクセルのセットを赤でペイントします。 詳細 パスは、接続されたピクセルのセットです(8近傍接続)。黒いピクセルをパスの一部として使用できます。目標は、上記の条件下で赤いピクセルのセットを最小化して、対応する画像を出力することです。 最適なソリューションを見つける必要はありません。 些細で同時に最悪の解決策は、すべての白いピクセルを赤で塗りつぶすことです。 例(視認性のためにピクセルが拡大されています): 詳細 (適切な形式の)ピクセル画像を指定すると、上記で指定したようにドットが接続された別の画像と、使用された赤いピクセルの数を示す整数が返されます。 スコアは、14個のテストケースのそれぞれの積(1 +赤いピクセルの数)です。 目標は最低のスコアを持つことです。 テストケース 14個のテストケースを以下に示します。出力の接続性を確認するためのpythonプログラムは、ここにあります。 メタ さまざまな提案をしてくれた@ Veskah、@ Fatalize、@ wizzwizz4、@ trichoplaxに感謝します。

1
Minifierを書きましょう
バックグラウンド JavaScriptをWebブラウザに提供する場合、一般的に縮小子が使用されます。通常、送信する必要のあるバイト数を減らすために使用されます。帯域幅を節約することは、明らかな理由で役立ちます。一部の人々は難読化ツール(意図的にコードを読みにくくする)を使用していますが、私はそれらについて話していません。 Python 2を縮小します JavaScriptまたはPythonを縮小化の経験として使用するかどうかを議論していましたが、2つの理由でPythonを決定しました。空白が重要であり、それが興味深いダイナミックな問題を追加すると思います。また、Pythonの2.7を使用して、このような削除余分として、別の動的に提供する()プリント時(すなわちprint("Hello world")対print"Hello world")。個人的には、任意の言語で開くことを望んでいましたが、一部の言語では、このプロセスはあまり意味がありません。また、縮小する言語はスコアに直接影響します(言語を縮小できる場合もあります)。 スペック あなたの目標は、とにかく機能を変更しない方法でのみコードを変更することです。もちろん、出力に影響を与えない限り、変数名を(縮小プログラム内で)変更できます(スコープを追跡します)。特定のプログラムを提供していますが、すべての標準的な抜け穴は禁止されているため、テストケース用に最適化しないでください。 スコア:縮小した後のプログラムの長さ。 入力:任意のPython 2.7プログラム(エラーなし) 出力:縮小版。 コードはすべての有効なPython 2.7入力に対応できる必要がありますが、有効性を証明するためにスクリプトを何かに対してテストする必要があります。 サンプルプログラムを表示するには、ここをクリックしてください。 問題をより親しみやすくする ソリューション内にあるコードを自由に使用または変更してください(以下を参照)。見積もりの​​基本的な見積もり処理を開始するためにこれを行いました。ただし、インデントなどに拡張できます。 Pythonを縮小する方法の例 すべての空白は最小限の量に置き換えることができます(Pythonではtabsを使用していくつかのトリッキーなことを行うことができますが、実装するかどうかはあなたに任せます)。 例 以下: def print_a_range(a): for i in range(a): print(i) になり得る: def print_a_range(a): for i in range(a): print(i) 技術的には、ループ内に1行しかない場合は、さらに圧縮できます。 def print_a_range(a): for i in range(a):print(i) #Note, you can also remove the …

11
大文字と小文字の一致検索
3つの入力、テキストの文字列T、置換する文字列、F; そして、それらを置き換える文字列R。Tと同じ(大文字と小文字を区別しない)文字を持つの各部分文字列について、の文字でF置き換えますR。ただし、元のテキストと同じ大文字小文字を使用してください。 より多くの文字が含まれているR場合F、余分な文字は大文字と小文字を区別する必要がありRます。に数字または記号がFある場合、対応する文字はRの大文字小文字を保持する必要がありRます。Fに表示されるとは限りませんT。 すべてのテキストが印刷可能なASCII範囲にあると想定できます。 例 "Text input", "text", "test" -> "Test input" "tHiS Is a PiEcE oF tExT", "is", "abcde" -> "tHaBcde Abcde a PiEcE oF tExT" "The birch canoe slid on the smooth planks", "o", " OH MY " -> "The birch can OH MY e slid OH MY …
14 code-golf  string  code-golf  string  ascii-art  alphabet  code-golf  number  sequence  counting  code-golf  sequence  counting  code-golf  quine  source-layout  code-golf  string  code-golf  decision-problem  game  code-golf  string  quine  source-layout  subsequence  code-golf  quine  code-golf  array-manipulation  integer  code-golf  ascii-art  code-golf  sequence  integer  code-golf  kolmogorov-complexity  code-golf  array-manipulation  integer  code-golf  number  array-manipulation  integer  code-golf  string  number  integer  code-golf  string  ascii-art  code-challenge  test-battery  expression-building  source-layout  printable-ascii  code-bowling  code-golf  number  code-golf  number  string  binary  code-golf  matrix  conversion  code-golf  number  arithmetic 

6
Brain-Flakへのテキスト
あなたの課題は、入力テキストを、テキストを出力するBrain-Flakコードに変換することです。 ここから許可を得てここから取られたチュートリアル Brain-Flakには、「左」と「右」として知られる2つのスタックがあります。アクティブなスタックは左から始まります。空のスタックがポップされると、0が返されます。それだけです。他の変数はありません。プログラムが起動すると、各コマンドライン引数がアクティブスタックにプッシュされます。 Brain-Flakプログラムで有効な文字はのみ()[]{}<>であり、常にバランスが取れている必要があります。関数にはNiladsとMonadsの 2種類があります。niladは 0の引数をとる関数です。すべてのniladsは次のとおりです。 () 1に評価します。 [] 現在のスタックの高さを評価します。 {}アクティブなスタックをポップします。ポップされた値を評価します。 <>アクティブなスタックを切り替えます。ゼロに評価します。 これらは評価されるときに連結されます。したがって、アクティブスタックの上に「3」がある場合、このスニペットは次のとおりです。 ()(){} するために評価されます1 + 1 + active.pop()5と評価されることになります。 モナドは1つの引数、Brain-Flakコードの塊を取ります。すべてのモナドは次のとおりです。 (n) アクティブなスタックで「n」を押します。 [n] 負の「n」に評価します {foo} スタックの先頭にゼロはありませんが、fooを実行してください。 <foo> fooを実行しますが、0として評価します。 これらの関数は、内部の値も返すため、 (()()()) 3をプッシュしますが、 ((()()())) 3を2回押します。 {}すべてのランの合計に評価します。したがって、スタックの一番上に「3」と「4」がある場合: {{}} 7と評価されます。 プログラムの実行が完了すると、アクティブなスタックに残っている各値が改行を挟んで印刷されます。他のスタックの値は無視されます。 ルール Brain-Flakはascii outで実行されていると仮定できます。(-A) brain-flakコードは入力を要求してはいけません すべての標準ルールが適用されます TIOで最大1024バイトの入力がある場合、コードは1分以内に実行する必要があります。(TIO出力が利用できない場合、インタープリターを提供し、マシンで実行します(マシンはTIOに近づくことができるはずです))。 任意の長さの入力をサポートする必要があります。 ファイルから入力を取得できます。 テストケースの最適化は許可されていません 確定的な出力が必要です プログラムはスタッククリーンである必要はありません テストケース(これらのコードを試してください。実際のスコアテキストは、チャレンジが投稿されてから1〜2週間後にリリースされます) ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz …

3
組み合わせの難問!
はじめに:組み合わせロジック 組み合わせロジック(CL)は、基本的に関数であるcombinatorsと呼ばれるものに基づいています。2つの基本的な「組み込み」コンビネータとがSありK、これについては後で説明します。 左結合性 CLはleft-associativeです。これは、CL を含む別のブラケットの一番左にあるブラケット(スタッフを含む)を削除し、スタッフを解放できることを意味します。たとえば、次のようなものです: ((a b) c) に減らすことができます (a b c) どこ(a b)より大きなブラケットの一番左にある((a b) c)ので、それを除去することができます。 左結合のはるかに大きな例(角括弧は説明です): ((a b) c ((d e) f (((g h) i) j))) = (a b c ((d e) f (((g h) i) j))) [((a b) c...) = (a b c...)] = (a b c (d …

2
Kippleを解釈してください!
前書き Kippleは、2003年3月にRune Bergによって発明されたスタックベースの難解なプログラミング言語です。 Kippleには、27のスタック、4つの演算子、および制御構造があります。 スタック スタックは命名されているa- zと32ビット符号付き整数を含んでいます。また@、数値の出力をより便利にするための特別なスタックがあります。数字がにプッシュされる@と、その数字の数字のASCII値が実際にプッシュされます。(たとえば、12を@に押した場合、49を押し、次に50を押し@ます。) iプログラムが実行される前に、入力が入力スタックにプッシュされます。インタープリターは、i実行前に保存する値を要求します。実行が終了すると、出力スタック上のすべてoがポップされ、ASCII文字として出力されます。これはKippleの唯一のIOメカニズムであるため、Kippleプログラムとの対話は不可能です。 オペレーター オペランドは、スタック識別子または符号付き32ビット整数のいずれかです。 プッシュ:>または< 構文:Operand>StackIndentifierまたはStackIndentifier<Operand Push演算子は、オペランドを左に取り、指定されたスタックにプッシュします。たとえば12>a、値12をstackにプッシュしますa。a>bstackから一番上の値をポップし、stack aにプッシュしますb。空のスタックをポップすると常に0 a<bが返されb>aます。これはと同等です。a<b>c最上位から値ポップbの両方にとプッシュをcしてa。 追加: + 構文: StackIndentifier+Operand 追加演算子は、スタックの一番上の項目とオペランドの合計をスタックにプッシュします。オペランドがスタックの場合、値はそこからポップされます。たとえば、スタックの最上位の値aが1の場合、a+23をプッシュします。aが空の場合、a+22をプッシュします。スタックの一番上の値場合aとbがある1と2は、a+bスタックから値2をポップアップ表示されますbし、スタックに3を押しますa。 減算: - 構文: StackIndentifier-Operand Subtract演算子は、Add演算子とまったく同じように機能しますが、加算ではなく減算する点が異なります。 晴れ: ? 構文: StackIndentifier? Clear演算子は、最上位のアイテムが0の場合、スタックを空にします。 インタープリターは演算子の隣にないものをすべて無視するため、次のプログラムが機能しますa+2 this will be ignored c<i。ただし、コメントを追加する適切な方法は、#文字を使用することです。a #と行末文字の間のすべてのものは、実行前に削除されます。ASCII文字#10は、Kippleの行末として定義されています。 オペランドは2つの演算子で共有a>b c>b c?できますa>b<c?。たとえば、と書くことができます。 プログラム1>a<2 a+aはa、値を[1 4](下から上へ)含むようになり、ではありません[1 3]。-オペレーターも同様です。 制御構造 Kippleには、ループという制御構造が1つしかありません。 構文: (StackIndentifier code ) …
12 code-golf  interpreter  code-golf  string  code-golf  math  string  code-golf  ascii-art  path-finding  code-golf  string  ascii-art  code-golf  interpreter  binary  logic-gates  logic  code-golf  ascii-art  code-golf  graph-theory  code-golf  string  code-golf  number  sorting  code-golf  number-theory  random  cryptography  polynomials  code-golf  number  code-golf  math  number  sequence  code-golf  quine  code-generation  code-golf  arithmetic  set-theory  code-golf  sequence  code-golf  code-golf  string  math  fastest-code  optimization  code-golf  code-golf  internet  stack-exchange-api  code-golf  array-manipulation  code-golf  string  internet  string  code-challenge  internet  test-battery  code-golf  math  pi  code-golf  arithmetic  primes  code-golf  array-manipulation  code-golf  string  code-golf  string  palindrome  code-golf  sequence  number-theory  fastest-algorithm  code-golf  math  number  base-conversion  code-golf  number-theory  sorting  subsequence  search  code-golf  permutations  code-challenge  popularity-contest  code-generation 

4
Nonographic Magnitude Optimizer™を構築する
ノノグラムは、次のように、隣接する領域のリストに従って白黒の絵を描くことが日本のパズルゲームです。 行または列の非グラフィックの大きさを、その行または列の連続する黒い領域の数に定義します。たとえば、その行には2つの正方形の領域が1つあるため、一番上の行の非グラフィックの大きさは1です。8行目には、2、2、1があるため、3の非グラフィックの大きさがあります。 空の行または列の非グラフィックの大きさは0です。 あなたの仕事は、ノノグラムのソリューショングリッドを取得し、すべての行と列が特定のソリューショングリッドと同じ非グラフィックマグナタイドを持つ、できるだけ少ない正方形でソリューショングリッドを生成するプログラムを作成することです。 たとえば、すべての正方形が塗りつぶされた非グラムグリッドは、すべての行または列で1の非グラフィックマグニチュードを持ちます。 グリッドに斜めのストライプを配置するだけで、同じ非グラフィックの大きさを実現でき、塗りつぶされた正方形の数を劇的に削減できます。 プログラムは、このファイルから50,000行で構成される入力を受け取ります(1.32 MB tar.gzテキストファイル; 2.15 MB解凍)。各行は、ランダムに(80%黒)塗りつぶされた正方形の単一の16×16ノノグラムソリューショングリッドを表し、さらに50,000行を出力します。各行には、対応する入力グリッドの最適化されたソリューショングリッドが含まれています。 各グリッドは、43文字のbase64文字列(左から右、次に上から下にエンコードする正方形)として表され、プログラムは同じ形式で出力を返す必要があります。たとえば、ファイルの最初のグリッドはE/lu/+7/f/3rp//f799xn/9//2mv//nvj/bt/yc9/40=であり、次のようにレンダリングされます。 グリッドはEにマップされる000100で始まるため、一番上の行の最初の6つのセルは、4番目を除いてすべて白です。次の文字がある/にマッピングします111111ため、次の6つのセルはすべて黒になります。 プログラムは、50,000個のテストケースのそれぞれについて、正確な非地理的規模でソリューショングリッドを実際に返す必要があります。より良いものが見つからない場合は、入力と同じグリッドを返すことができます。 最小の合計塗りつぶされた正方形(任意の言語)を返すプログラムが勝者であり、短いコードがタイブレイカーです。 現在のスコアボード: 3,637,260 — Sleafar、Java 7,270,894 — flawr、Matlab 10,239,288 —ジョーZ.、バッシュ

2
nを法とする数論のインタープリター
(私たちの目的のための)数論の文は、次の記号のシーケンスです。 0および'(後継者)-後継者は+1、0'''' = 0 + 1 + 1 + 1 + 1 = 4 +(加算)と*(乗算) = (に等しい) (と)(括弧) 論理演算子nand(a nand bis not (a and b)) forall (ユニバーサル数量詞) v0、v1、v2、など(変数) ここに文の例があります: forall v1 (forall v2 (forall v3 (not (v1*v1*v1 + v2*v2*v2 = v3*v3*v3)))) ここでnot xは省略形ですx nand x-実際の文が使用する(v1*v1*v1 + v2*v2*v2 = v3*v3*v3) nand …
12 code-golf  number-theory  parsing  code-golf  kolmogorov-complexity  code-golf  code-golf  array-manipulation  matrix  code-golf  array-manipulation  code-golf  string  code-challenge  graphical-output  compression  code-golf  kolmogorov-complexity  code-golf  sequence  array-manipulation  code-golf  number  base-conversion  code-golf  string  decision-problem  code-golf  string  ascii-art  code-golf  string  random  code-challenge  brainfuck  code-generation  code-golf  code-golf  quine  code-golf  interpreter  code-golf  interpreter  code-golf  array-manipulation  sorting  code-golf  halting-problem  code-golf  javascript  code-golf  algorithm  code-golf  arithmetic  code-golf  math  counting  code-golf  math  code-golf  decision-problem  radiation-hardening  code-golf  conversion  bitwise  code-golf  number  decision-problem  code-golf  string  decision-problem  code-golf  random  game  code-golf  ascii-art  graphical-output  code-golf  decision-problem  binary-tree  tree-traversal  code-challenge  array-manipulation  code-challenge  graphical-output  path-finding  test-battery  algorithm  code-golf  integer  factorial  code-golf  binary-tree  code-golf  grid  graph-theory  code-golf  regular-expression  quine  code-golf  encoding  code-golf  king-of-the-hill  javascript 

5
タマネギ、またはタマネギではない?
The Onion(警告:多くの記事はNSFWです)は、伝統的なニュースメディアをパロディ化する風刺的なニュース組織です。2014年、The OnionはClickBole(警告:NSFWも頻繁に)を立ち上げました。これは、BuzzFeedのような「clickbait」サイトをパロディ化する風刺的なニュースWebサイトです。Poeの法則のおかげで、人々が風刺を意図していることを知らずに、The OnionまたはClickHoleの記事の見出しを読んで、それらが真実であると信じることはかなり一般的です。その逆は、ばかげて聞こえる本当のニュース記事でも起こります。 この混乱は自然にゲームに役立ちます-ニュースの見出しを考えれば、それが風刺であるかどうかを推測してみてください。この課題は、まさにそれをプログラムで行うことです。 ニュースの見出し(印刷可能なASCII文字とスペースのみで構成される文字列)が与えられた1場合、見出しが風刺であるか0、そうでない場合に出力します。スコアは、正しい出力の数を見出しの総数で割ったものになります。 通常どおり、標準の抜け穴(特にテストケースの最適化)は許可されていません。これを実施するために、200の隠されたテストケース(The Onionから100、Not The Onionから100)のセットでプログラムを実行します。ソリューションが有効であるためには、パブリックテストケースのスコアより20パーセントポイント以下しかスコアを取得してはなりません。 テストケース このチャレンジのテストケースを考え出すために、The Onion subreddit(The OnionとClickHoleなどの子サイトからの記事が掲載されている)から25件の見出しを選び、Not The Onion subreddit(実際のニュース記事から)風刺のような音が掲載されています)。見出しに加えた唯一の変更は、「空想的な」引用を通常のASCII引用に置き換え、大文字を標準化することでした。他のすべては元の記事の見出しから変更されていません。各見出しは独自の行にあります。 オニオンの見出し Trump Warns Removing Confederate Statues Could Be Slippery Slope To Eliminating Racism Entirely 'No Way To Prevent This,' Says Only Nation Where This Regularly Happens My Doctor Told Me I Should …

4
あいさつ文を削除する
チャレンジ こんにちは、入力として文字列を指定すると、文字列の先頭で見つかったあいさつを削除します。 50バイト未満で最も正しい置換を実行するプログラムが勝ちます。 あいさつ文 あいさつ文は、次のいずれかの単語として定義されます。 こんにちは ねえ こんにちは 親愛な あいさつ ハイ みんな ひい ハウディ ひや 干し草 へや ほら ひひ あいさつ 最初の文字は大文字にすることができます。 あいさつ文の後には常にカンマおよび/または単一のスペースがありますが、これらも削除する必要があります。コンマとスペースは任意の順序(,<space>または<space>,)にすることができ、両方を削除する必要があります。 あいさつ文とそれに続く単語は、コンマや単一のスペースでのみ区切られます。 次に、挨拶の後に続く単語の最初の文字を大文字にする必要があります。置換が行われていなくても、出力の最初の単語を大文字にする必要があります。 大文字は小文字のアルファベット文字(abcdefghijklmnopqrstuvwxyz)にのみ適用されます。他のキャラクターはそのままにしておく必要があります。 あいさつは常に文字列の先頭になります。開始時ではない挨拶文を置き換えるべきではありません。 常に挨拶があるとは限りません。 コードは50バイト未満でなければなりません。 例 Input > Output Salutations, what's going on? > What's going on? hello i have quetions how does juice an avocado > …

3
2を法とするWythoff行列の特定の値を出力します
Wythoff行列は、Wythoffのゲームのチェス盤上の各正方形のグランディ数で構成される無限行列です。 このマトリックスの各エントリは、エントリの位置の上、左、または斜め北西に表示されない最小の非負数に等しくなります。 左上の20行20列の正方形は次のようになります。 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 2 0 4 5 3 7 8 6 10 11 9 13 14 12 16 17 15 19 20 2 0 1 5 3 4 8 …

2
Xが3より大きく、XとYの間に少なくとも2つの差がある
私はいくつかのC ++をゴルフしようとしています。この条件を短くすることは可能ですか? X > 3 & X - Y > 1 (もちろん、空白の削除は別として。) だから、X少なくともです4がX >= Y + 2。 XおよびYは、[0,5]間隔の整数です。 ビット単位の数式を見つけようとしましたが、失敗しました。
11 code-golf  number  tips  c++  code-golf  popularity-contest  obfuscation  code-golf  c  code-golf  board-game  hexagonal-grid  code-golf  game  grid  code-golf  number  permutations  popularity-contest  math  graphical-output  number-theory  king-of-the-hill  code-challenge  compression  code-challenge  fastest-code  code-golf  math  ascii-art  animation  code-golf  popularity-contest  generation  counting  fastest-code  fastest-code  popularity-contest  image-processing  king-of-the-hill  code-golf  conversion  binary-tree  code-golf  math  number  rational-numbers  division  code-golf  restricted-source  hashing  atomic-code-golf  logic-gates  code-golf  function  code-challenge  puzzle-solver  ai-player  test-battery  popularity-contest  music  compression  code-golf  number  stack  atomic-code-golf  logic-gates  ascii-art  popularity-contest  code-golf  date  grid  code-challenge  game  code-golf  parsing  code-golf  math  geometry  sequence  popularity-contest  code-trolling  code-golf  string  restricted-source  code-golf  quine  king-of-the-hill  code-golf  math  code-golf  simulation  code-golf  ascii-art  code-challenge  sorting  optimization 

2
欠落しているRGBチャネルを再構築する
これらの自然シーンの写真を見てください。RGBチャネルの1つが取り出されています。 ソース(赤):https : //en.wikipedia.org/wiki/File : Altja_j %C3% B5gi_Lahemaal.jpg ソース(緑あり):https : //commons.wikimedia.org/wiki/File : 2007_mather-lake_hg.jpg ソース(青):https : //commons.wikimedia.org/wiki/File : Fox_01.jpg チャネルが1つもない場合でも、特定の色がどのような色であるかがわかるか、少なくとも、欠落しているチャネルの再構築が正確である場合は良い考えが得られます。 たとえば、次は、ランダムノイズである赤いチャネルが追加された最初の画像です。 この画像は明らかに赤チャンネルを正確に再現したものではありません。これは、自然の写真は通常、RGBスペクトル全体を使用するのではなく、「自然に見える色」のサブセットのみを使用するためです。また、赤の色合いは、他の色と相関する特定のグラデーションに従います。 あなたの仕事は、1つのチャネルが削除された写真を撮るプログラムを構築し、失われたチャネルであると考えられるものを再構築することによって、元の画像にできるだけ近づけることを試みることです。 プログラムは、そのチャネルの値が元の画像の実際の値(ここで値が標準の8ビットカラーチャネルと同様に、0〜255の範囲です。 あなたのプログラムが採点されるテストケースはここにあります(9.04 MBのzipファイル、6つの画像)。現在、上記の3つのサンプル画像とそのオリジナルのみが含まれていますが、後でいくつか追加して、完成したら完全なスイートを作成します。 各画像は1024 x 768に縮小およびトリミングされるため、スコアの重みは同じになります。指定された許容範囲内のほとんどのピクセルを予測できるプログラムが優先されます。

4
カウンターを特定の数に進める最短の方法を見つける
カウンターがあります。これは次のような小さなデバイスです。 表示がから0000に変わり9999ます。上部に小さなプッシュボタンがあり、カウントを1増やします。右側に小さなノブがあり、その目的はカウンターを0にリセットすることです。 さて、小さなつまみの重要な点は、後ろに回すと、もう一度前に回すと、必要な桁を増やすことができるということです。カウンターボタンを10回押してカウンターが表示されたら0010、小さなクリック音が聞こえるまでノブを後ろに回してから、もう一度前に回してまっすぐにし0090ます。 ただし、つまみは、数字を進めるたびに、常に同じ数字のすべての出現を1ずつ増やします。カウンタが示すのであれば6060、あなたはそれがに増加させることができ7070ないように、6070または7060。また、ノブはキャリーせずに9s にロールオーバーする0ため、またはの代わりに0990進みます。000010001100 カウンターを特定の数に設定する最も効率的な方法を知りたいです。あなたの仕事は、そうするために必要なボタン押しとノブ前進の最短シーケンスを決定するプログラムまたは関数を書くことです。 プログラムは、入力としてから0000までの4桁の数値を受け取り9999、一連のステップを次の形式で返します。 > 0001 C > 0093 C12345678C12345678CCC > 1000 C12345678C12345678C12345678C12345678C12345678C12345678C12345678C > 9999 012345678 ここでC、「カウンターボタンを押す」をD表し、0から9までの数字は、「ノブを使用してすべての発生をD1つ進める」ことを表します。 プログラムは、考えられるすべての4桁の組み合わせに対して有効なステップのシーケンスを生成する必要があり、10,000ケースすべてに必要なステップの合計数によってスコアが付けられます。引き分けの場合(最適なアルゴリズムが見つかる可能性が高い)、短いコードが優先されます。

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