タグ付けされた質問 「puzzle-solver」

このタグは、数独、ルービックキューブ、クロスワードパズルなどのパズルを解くプログラムを書くことに挑戦する場合に使用します。

12
3および5リットルの水差しパズル
Die Hardでこれを見たかもしれません:復Venとともに ...この質問は有名な3リットルと5リットルの水差しパズルに基づいていますが、わずかに異なる傾斜があります。 1〜100の整数を指定すると、3リットルの水差しと5リットルの水差しを使用して、噴水からの対応するリットルの水量をタンクに測定するための最も迅速な指示を提供するコードを実行します。 どちらの水差しにもグラデーションはありません。噴水には水が豊富にあり、タンクはコードの各実行の開始時に空になると想定されています。 タンクに入ったら、タンクから水にアクセスできません。 実行形式は次のとおりです。 入力: 4 例えば。 出力 示されているように、各番号付きステップを出力し、その後に5L水差し、3L水差し、およびタンクの容積の集計が続きます。集計形式も以下に示します。ステップの数も、ステップの最後に出力する必要があります。 1) Fill 5L jug 5L: 5, 3L: 0, T: 0 2) Pour from 5L jug into 3L jug 5L: 2, 3L: 3, T: 0 3) Empty 3L jug 5L: 2, 3L: 0, T: 0 4) Pour from 5L …

9
ジャンプの最小数
一連の数字が与えられたら、開始位置から終了まで移動して再び開始位置に戻るための最小ジャンプ数を見つけます。 シーケンスの各要素は、その位置から移動できる移動の最大数を示します。 任意の位置で、最大k移動でジャンプできます。kはその位置に保存されている値です。最後に到達すると、以前はジャンプに使用されていなかったジャンプの位置のみを使用できます。 入力は、単一のスペースで区切られた数字のシーケンスとして与えられます。出力は、使用されるジャンプの最小数である単一の数値でなければなりません。最後まで移動して開始位置に戻ることができない場合は、-1を出力します 入力: 2 4 2 2 3 4 2 2 出力: 6(最後に到達するには3、戻ってくるには3) 入力 1 0 出力 -1 注意 シーケンスのすべての数が負でないと仮定します 編集1 「したがって、常に最後の位置からジャンプできることは明らかです。」紛らわしいかもしれないので、質問から削除しました。質問には影響しません。 受賞基準: 勝者はコードが最も短いものになります。

1
インタラクティブ迷路ソルバー
ボブは誘kidされ、迷路で立ち往生しています。あなたの仕事は彼が道を見つけるのを助けることです。しかし、それは非常に暗いと怖い迷路なので、彼は何も見ることができません。彼は壁に出会ったときだけ壁を感じることができ、出口を見つけたときは知っていますが、それ以上何も知りません。 彼はプログラムをメモリで実行する必要があるため、可能な限り短くする必要があります。 注:この問題はhttp://acmgnyr.org/year2016/problems.shtmlから取得しましたが、わずかに修正し、ジャッジプログラム/テストケースを自分で作成しました。 仕様 これは対話型の問題であるため、プログラムは動きをstdoutに出力し、stdinからの応答を取り込みます。 動きのあなたのプログラムを出力することができる1 right、left、down、up。 次に、次のいずれかを入力として取得します。 wall-これは、ボブが壁にぶつかったことを意味します。ボブは同じ場所に留まります。 solved-ボブは出口を見つけました!これで、プログラムは何も出力せずに終了するはずです。 ok -ボブは指定された方向に移動できました。 迷路に出口がない場合、プログラムはno exitボブにshouldめるべきだと知らせるために出力する必要があります。その後、プログラムは何も印刷せずに終了します。 ボブは外に出るのが急いでいるので、あなたのプログラムは余分な動きをしてはいけません。つまり、プログラムは同じ正方形から同じ方向に2回移動することはできません。 これはcode-golfなので、最短のプログラムが勝ちます! 例 次の例では、 Sは、は開始正方形、X出口#は壁、壁は有効な正方形です。正解は1つではないため、これらはソリューションの単なる実行例です。また、迷路の絵はあなたが見るためだけにあり、あなたのプログラムはそれらを入力として取得しないことに注意してください。 ######## #S # ###### # # # #X# right ok right ok right ok right ok right ok right wall down ok right wall down ok right wall down solved ##### …

30
プライムパワーからプライムを回復する
定義:素数はp nの形式で表現できる自然数です。pは素数で、nは自然数です。 タスク:プライムパワーp n > 1の場合、プライムpを返します。 テストケース: input output 9 3 16 2 343 7 2687 2687 59049 3 得点:これはcode-golfです。バイト単位の最短回答が優先されます。
13 code-golf  arithmetic  primes  king-of-the-hill  python  board-game  code-golf  number  subsequence  code-golf  ascii-art  code-golf  array-manipulation  decision-problem  grid  fastest-algorithm  logic-gates  logic  code-golf  cards  code-golf  rational-numbers  code-golf  math  number  sequence  code-golf  array-manipulation  integer  code-golf  number  array-manipulation  code-golf  number  sequence  decision-problem  code-golf  ascii-art  number  code-challenge  sequence  arithmetic  sorting  code-golf  date  fastest-algorithm  code-golf  string  number  random  combinatorics  code-golf  combinatorics  code-golf  ascii-art  base-conversion  code-golf  array-manipulation  code-golf  string  code-golf  string  number  arithmetic  code-golf  kolmogorov-complexity  code-golf  string  array-manipulation  json  code-golf  puzzle-solver  code-golf  binary  graph-theory  code-golf  arithmetic  haskell  code-golf  string  cipher  code-golf  code-golf  string  parsing  alphabet  code-golf  string  code-golf  ascii-art  code-golf  string  number  code-golf  string  balanced-string 

4
単語は互いに隣接するキーで入力可能ですか?
これを読む前に、この小さなパズルを読むことをお勧めします:https : //puzzling.stackexchange.com/questions/11408/longest-word-with-adjacent-letters-on-a-keyboard 1つの引数、単語(小文字のみ)を取り、キーボードの隣接するキーで単語を入力できる場合は「はい」(記事を参照)、出力できる場合は「いいえ」を出力するプログラムを作成してほしい隣接する文字を入力しないでください。 このチャレンジで使用されるキーボードレイアウトは次のとおりです。 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ | Q | W | E | R | T | Y | U | I | O | P | └─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘ | A | S | D | F | G | H | J | K | L | └─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┘ | Z …

4
BattleBlock Theaterパズルを解く
ゲームBattleBlock Theaterには、Lights Outの一般化バージョンであるパズルが含まれることがあります。隣接する3つのブロックがあります。各ブロックは、バーを含む1〜4のレベルを示します。例: | |||| || ブロックにタッチすると、そのブロックと隣接するブロックのレベルが増加します(4から1に戻ります)。パズルは、3つのブロックすべてが同じレベルを示すときに解決されます(どのレベルでもかまいません)。ブロックをタッチする順序は重要ではないため、各ブロックがタッチされる頻度によってソリューションを示します。上記の入力の最適なソリューションは次のとおりです201。 | --> || --> ||| ||| |||| | || ||| || || || --> ||| ゲームは非常に簡単に任意の数のブロックを一般化しますが、一部の数では、すべての構成が解決可能ではありません。 チャレンジ ブロックレベルのシーケンスが与えられたら、パズルを解くために各ブロックをタッチする必要がある頻度を返します。例えば、上記の例はとして与えられ、結果として142生じる可能性があり201ます。解決策がない場合は、選択した一貫した出力を返します。これは、すべての潜在的な解決策、-1または空の文字列などと区別できます。 関数またはプログラムを記述し、STDIN、コマンドライン引数または関数引数を介して入力を任意の便利なリスト形式または文字列形式で取得し、同様に戻り値を介して出力するか、STDOUTに出力します。 コードは、妥当なマシンで1分以内にすべてのテストケースに対して正しい結果を返す必要があります。(これは完全に厳密な制限ではないため、ソリューションに1分10秒かかる場合は問題ありませんが、3分かかる場合はそうではありません。優れたアルゴリズムは数秒で簡単に解決できます。) これはコードゴルフなので、最短の回答(バイト単位)が勝ちです。 例 ソリューションは一意ではないため、異なる結果が得られる場合があります。 Input Output 1 0 11 00 12 No solution 142 201 434 101 222 000 4113 0230 32444 No solution …

1
これらのセルをグループ化します!
この課題は、ゲームLayerzに基づいています。 標準入力または関数の引数として、各セルに空白(ペナルティなしで空白の代わりに0を使用することを選択できます)、1、2、3、または4のいずれかを含むセルの2D長方形配列; 各非空白セルがちょうど1つの領域に含まれるように、それを有効な領域(以下に定義)に分割する方法を見つけます。次に、見つかったソリューションを適切な形式で出力します。解決策がない場合は、出力を生成せずに停止するか、単一のfalsey値を出力して停止します。 次のいずれかが有効なリージョンを構成します。 1を含む単一のセル 2を含むセルと、その非空白の直交ネイバーの1つを含む 3つおよび正確に2つの非空白の直交近傍を含むセル 4のセルと、厳密に3つの非空白の直交ネイバーを含むセル これはcode-golfであるため、バイト単位での最短の有効な回答が優先されます。 いくつかのテストケース: 1.かなり些細なもの: これが解決策であり、各領域は異なる色になっています。 2.より興味深いもの これには複数のソリューションがありますが、そのうちの1つを次に示します。 3.解決策を持たない、空白を含む小さなもの(2つのうちの1つを使用して3つを「キャプチャ」するか、3つを使用して2つのうち2つを取得するかによって、隣接しない(したがってグループ化できない)2つのペアまたは単独の2つのペア): このグリッドには解決策がないため、このグリッドが与えられたときに出力を生成せずにプログラムを停止する必要があります。 4.これは(上の2つのセルを1つ左にシフトした)解決策があります: 解決: (右下2は3を「キャプチャ」するために使用されます) 5.いくつかの4つのテストケースが必要だったため: 1つのソリューション:

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
論理ドット形状
ゲーム 最近、私の時間の大部分は、ロジックドットと呼ばれる、携帯電話で中毒を起こすゲームに費やされました。ゲームのディスプレイを表示するとルールを説明するのが簡単になるため、ここでは未解決の解決済みパズルのスクリーンショットを示します。 ここで、注目すべき3つの主な点があります。 ゲームボード(中央にある4x4の正方形のグリッド) 必要な形状(上から2番目のバー、スコアおよびメニューの下など)のすべての線、またはa1つの長方形によるリンクされたドット 解決策のために、列に必要なドットの数を示す行と列の数値 ゲームの目的は、必要な形状をグリッドに収めることです。図形を回転させることはできますが、斜めに入れることはできません。 ソリューションでは、すべてのシェイプが一度だけ作成されることに注意してください(必要なシェイプに一度だけあるため)。この場合、それらはすべて水平ですが、垂直にすることもできます。正方形に塗りつぶされたピンク色は、使用されていない正方形を示します。 これは、より大きく、わずかに複雑なグリッドです。 未解決のパズルには、すでにいくつかの正方形が塗りつぶされていることに注意してください。灰色の正方形は、ドットを配置できないブロックされた正方形を示します。テールのあるドットは、そのスポットにドットがあることを示し、テールの方向で少なくとも 1つ以上のドットにリンクしていますが、他の方向(反対方向を含む)ではリンクしていません。 表記法 この投稿の残りの部分では、次の記号を使用してボードを参照します。 <、>、^、v-事前に配置されたドットがポイントの方向に伸びるテールを持つことを示します *-ドットを示します。未解決のグリッド(入力)で指定された場合、それは個々の形状です。出力の場合は、周囲のドットに接続されます。 #-ブロックされたグリッドスクエアを示します(ドットを配置できない場所) -、| (ハイフンとバー)-左右の尾を持つドットと、上下の尾を持つドットをそれぞれ示します **(スペース文字)-**空のスペースを示します これらのシンボルを使用すると、後者の例のケース(未解決)は次のように表すことができます。 < # ^ # ソリューションは次のように表すことができます。 *< * * * * * * * *#* ^ # * 2つの図形が水平、垂直、または斜めに接触することはできないため、次のケースは無効です。 *** ** ** チャレンジ あなたの課題は、4x4から9x9までのロジックドットパズルを解決することです。4行の入力を受け取り、次にゲームボードを受け取ります。行は次のようになります。 1行目、図形-検索する図形。それぞれフォームsizexquantity(3x2長さ3の2つの図形など)で指定され、スペースで区切られます。例の行:3x1 2x1 1x1 2行目、列-各列に必要なドット数のスペース区切りリスト。例の行:1 1 2 2 …

1
整数操作によりIEEE 754 64ビットのバイナリ浮動小数点数を実装します
(とりあえず質問「C」にタグを付けましたが、共用体をサポートする別の言語を知っている場合は、それも使用できます。) あなたの仕事は+ - * /、次の構造体の4つの標準的な数学演算子を作成することです。 union intfloat{ double f; uint8_t h[8]; uint16_t i[4]; uint32_t j[2]; uint64_t k; intfloat(double g){f = g;} intfloat(){k = 0;} } 演算自体は整数部分のみを操作またはアクセスするため(演算中にdoubleと比較することはありません)、結果はまったく同じです(またはのような非数値の結果の場合は機能的に同等ですNaN)対応する数学演算がdouble代わりに直接適用されたかのように。 操作する整数部分を選択できます。おそらく、異なる演算子間で異なる部分を使用することもできます。(ユニオンのフィールドのいずれかから「unsigned」を削除することもできますが、それを実行するかどうかはわかりません。) スコアは、4つの演算子のそれぞれの文字のコードの長さの合計です。最低スコアが勝ちます。 IEEE 754規格に慣れていない私たちの人のために、ここではウィキペディアにそれについての記事です。 編集: 03-06 08:47 intfloat構造体にコンストラクタを追加しました。double /などを手動で設定するのではなく、テストに使用できます。

1
ベスが砂漠を脱出するのを手伝ってください
他の水を運ぶパズルと似ていますが、このチャレンジのユニークな側面はそれを完全に異なっています。 ベスは砂漠の真ん中のオアシスにあります。湖にはたくさんの水がありますが、残念ながら、バケツはX個しかなく、各バケツにはYリットルの水を入れることができます。 ベスは手に2個のバケツを持ち運ぶことができますが、生き残るためには、1キロ移動した後に正確に1リットル飲む必要があります。彼女はまた、いくつかのバケツを途中で残すことができます(水は蒸発しません)。 チャレンジ 式を計算し、XおよびYの正の整数値に対して機能する最短のソリューションを記述し、ベスがオアシスから移動できる最大距離を計算します。バケット間での水の移動は許可されています。 例 X = 3、Y = 5 Bethはオアシスから3KM離れたバケツを1つ残して戻ります(オアシスからの最後の飲み物を持ち帰ります) Bethは3KMのポイントに別の完全なバケットをもたらし、現在12Lを持っています。 ベスは6KMポイントに進み、4Lの水を入れたバケツを離れることができます。 3KMポイントに戻ります。彼女はオアシスに戻るためにちょうど2Lを持っています。 バケツを満たし、6KMポイントまで移動します。彼女は今8Lの水を持っています。 15KMポイントまでずっと進みます。 答えは:15 入出力 X / Yをコードで直接定義するか、入力から読み取ることができます。結果は、変数または出力のいずれか短い方に配置できます。

2
繰り返しを解釈する!
この課題は、繰り返しに関する2チャレンジシリーズの最初の課題です。2つ目はすぐにアップします。 繰り返し(私がちょうど作っ何か)と呼ばれる言語では、無限の文字列が構成さ12345678901234567890...と、1234567890永遠に繰り返すことを。 数値を出力するには、次の構文を使用できます。 +-*/:これにより、繰り返し数字の文字列に演算子が挿入されます。 例: +-> 1+2= 3(間にandを+挿入)+12 +*-> 1+2*3= 1+6= 7(2つの演算子が現在使用されていることを除いて、上記と同じです) /-> 1/2= 0(繰り返しは整数除算を使用) //-> 1/2/3= 0/3= 0(繰り返しは複数の減算と除算で「左の関連付け」を使用します) 各演算子は、c' がない限り、左に1桁の数字が挿入されるように挿入されます(以下を参照)。 c:文字列の次の数字と連結します。 例: c+-> 12+3= 15(をc「継続」1し、次の数字と連結して2、を形成します12) +c-> 1+23=24 ccc -> 1234 ():数字を処理するための括弧。 例: (c+)*-> (12+3)*4= 15*4= 60(繰り返しは操作の順序を使用します) (c+)/c-> (12+3)/45= 15/45=0 (cc+c)/-> (123+45)/6= 168/6=28 s:番号をスキップします(無限の文字列から番号を削除します)。 s+-> 2+3= 5(sスキップ1) csc- > 124(第一cconcats …

1
ABCソルバーとして簡単
「エンドビュー」としても知られるEasy As ABCは、周りに文字が入った空のグリッドが表示されるパズルです。各文字の正確に1文字がすべての行と列に含まれるように、グリッドを部分的に埋める必要があります。さらに、行(または列)の最後の文字は、その行(または列)でその方向から見える最初の文字でなければなりません。このコードゴルフの目標は、Easy As ABCパズルを解くことです。 たとえば、MICの文字を使用した今年のMITミステリーハントの Easy As ABCパズルは次のとおりです。 解決策は次のとおりです。 (Csのアーティファクトについては申し訳ありません。パズルの残りの部分から無関係な情報を編集してみました。) I / O 入力は、文字列の配列または場合によっては区切り文字を含む文字列になります。左上隅から始まり、時計回りに進みます。たとえば、上記のパズルは次のように入力できます。 ".CMM.M|....IM|.....I|C.ICI." 出力は、境界線の有無にかかわらず、解決されたグリッドである必要があります。文字の配列、文字列の配列、またはその他の便利な形式として使用できます。同じ「空白」文字を入力として受け入れ、出力として表示する必要がありますが、その空白文字は何でもかまいません。それらが単一の文字列である場合、入力と出力の両方に同じセパレーター(入力の両側と出力の行の間)があるか、セパレーターがまったくない必要があります。 解決不可能なパズルの場合、ソリューションと間違えられないものを出力する必要があります。パズルには複数の解決策があるとは思わないでしょう。 任意の数の文字と任意のサイズのグリッドを許可する必要があります。使用されたすべての文字がグリッドの境界線に表示されます。 これはコードゴルフです:いつものように、最短のコードが勝ちます! テストケース "T.AA..|.T.TSS|..TST.|A...SS" "R.RU..|B.B..B|.UR.UB|UR..B." "N...NK|E.NK.K|..KK..|....EK" "CA..DBD|.B..CC.|.D.DEB.|DB.A..A" "...DDEBE|DC..EBBD|BA..ABF.|E..FECDE"

1
直交対角グレコラテン正方形の構築
Nx個のN一意の要素のグリッドを考えます。各要素には、文字(AからNth文字まで)と数字(1からN包括的)があります。したがって、各数字/文字のペアはグリッドに1回だけ存在します。 あなたの仕事は、次のようにグリッドを配置することです: 各行、列、および対角線(折り返しを含む)には、各文字と数字が1回だけ含まれています。 ラッピングとは、つまり * * * # * * * # * * * # * * * # * * * * * * * * # は、対角線であり、エッジに当たるすべての同様の対角線です。 5x5グリッドの例は次のとおりです。 A1 B2 C3 D4 E5 C4 D5 E1 A2 B3 E2 A3 B4 C5 D1 B5 C1 D2 E3 …

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 

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