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

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

1
たたみばりソルバー
バックグラウンド タタミバリはニコリが設計した論理パズルです。 :Tatamibariパズルは、その中のシンボルの三つの異なる種類の長方形のグリッド上で再生され+、-。と|。ソルバーは、次の規則に従ってグリッドを長方形または正方形の領域に分割する必要があります。 すべてのパーティションには、シンボルが1つだけ含まれている必要があります。 +シンボルは、正方形の中に含まれている必要があります。 |シンボルは、幅よりも大きい高さを有する矩形に含まれなければなりません。 -シンボルは、高さよりも大きな幅を有する長方形に含まれなければなりません。 4つのピースが同じコーナーを共有することはありません。(これが通常の畳の置き方です。) 以下は、解決策を含むパズルの例です。 仕事 与えられたタタミバリパズルを解きます。 入出力 入力は、指定されたタタミバリパズルを表す2Dグリッドです。各セルは、4つの文字のいずれかが含まれています+、-、|、、お好みのキャラクターは非手掛かり細胞を表現するために。テストケースでは、アスタリスク*が使用されています。 タタミバリパズルの有効なソリューションを明確に表すことができる適切な出力形式を選択できます。これには以下が含まれますが、これらに限定されません(不明な場合は、コメントで質問してください)。 4タプルのリスト。各タプルには、長方形の上部インデックス、左インデックス、幅と高さ(または同等の表現)が含まれます。 入力と同じ形状の数値グリッド。各数値は長方形を表します 座標セットのリスト。各セットには、長方形内のセルのすべての座標が含まれます パズルに複数のソリューションがある場合、有効なソリューションをいくつでも(1つ以上)出力できます。入力には少なくとも1つのソリューションがあることが保証されています。 テストケース Puzzle: |-* *+| *-* Solution: 122 134 554 ===== Puzzle: +*** **|* *+** ***- Solution: 1122 1122 3322 3344 ====== Puzzle: |*+*+ ***** ****- ***+| +**** Solution: 12233 12233 44444 55667 …

2
安全をクラック!
/puzzling/24334/to-catch-a-thiefに触発されました sとs(または任意の他の文字)で満たされたnby n(nそれ自体はオプションの入力)グリッドが与えられます。すべてのセルを同じにすることを目的としています(または)。以下に定義する一連の動きを行うことができます(Puzzling SEリンクとの相違点に注意してください)。0101 セルを選択します。 同じ行と列のすべてのセル(セル自体を除く)は、その反対に変更されます。0へ1と1へ0。 タスクを完了するために必要な最小移動数を出力します。解決できない場合は、負でない整数以外を出力します。最短のコードが勝ちます。 サンプルデータ 1 0 0 0 0 0 0 0 0 -1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 …

2
ユーザー指定の数値を使用して有効な方程式を生成します
これは、中学校で数学の先生がプレイしていたゲームに基づいています。彼はボードに5つのランダムな1桁の数字を書き、次にランダムな2桁の数字を書きます。5桁の1桁の数値すべてを使用して2桁の数値を求める方程式を作成しようとします。これをよりよく説明するためのソリューションの例をいくつか示します。 Input: Solution: 7 5 4 8 4 34 5*8-7+4/4 = 34 3 1 5 7 6 54 (7+3)*6-5-1 = 54 3 9 2 1 6 87 9*(2+1)*3+6 = 87 2 1 6 9 7 16 (9-7+6*1)*2 = 16 2 4 5 8 6 96 8*(5+6)+2*4 = 96 3 8 …

2
1000の最も一般的な単語
この質問は、「物事の説明者」が楽しく読めるから書いてありました。 文字、数字、およびこのようなもののセットを読み取り/受け取り、すべての単語がこのセットの一部である場合に"#%|?戻る「コンピュータに物事を実行させるもの」を記述します。True / 1 すべての単語がそのセットの一部ではない場合、そのセットの一部ではなかった単語を返します。 このウェブサイトは、すべての場合において正しいと見なすことができます。ルールはそのサイトの仕様に従うように書かれています。 例: Truthy: 最初の水平線より上のテキスト全体が入力として貼り付けられている場合、コードは真の値を返す必要があります。 次の行は真の値を返します(入力はで区切られています###) This returns "Hello, World!" ### tHiS rEtUrNs TrUe... ### Thing Explainer is a book written by a man. The man writes books with simple words. ### This set of stuff "#!^{>7( must return true 偽り: 次の例では、入力と出力はで区切られてい***ます。異なるテストケースはで区切られ###ます。 This code doesn't return …
9 code-golf  string  parsing  code-golf  array-manipulation  random  permutations  code-golf  string  code-golf  parsing  code-golf  string  quine  code-golf  string  parsing  comment  code-golf  string  counting  natural-language  code-golf  string  decision-problem  code-golf  math  code-challenge  metagolf  test-battery  code-golf  string  code-golf  math  number  arithmetic  source-layout  code-golf  number  primes  decision-problem  code-golf  math  arithmetic  code-golf  date  code-golf  string  cryptography  code-golf  code-golf  chess  board-game  code-golf  geometry  grid  puzzle-solver  set-partitions  code-golf  number  natural-language  code-golf  ascii-art  code-golf  math  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  string  natural-language  code-golf  game  board-game  tic-tac-toe  code-golf  ascii-art  hexagonal-grid  code-golf  string  comment  code-golf  internet  code-golf  sorting  code-golf  kolmogorov-complexity  unicode  code-golf  tips  code-golf  string  natural-language  code-golf  string  kolmogorov-complexity  source-layout  hello-world  code-golf  string  kolmogorov-complexity  counting  natural-language  code-golf  random  quine  code-golf  string  math  bitwise  code-golf  permutations  code-golf  string  code-golf  arithmetic 

3
キラー数独ソルバーを構築する
通常の数独は難しいと思っていましたが、今度はキラー数独を試してください! キラー数独のゲームでは、あなたはまったく番号を与えられていません。代わりに、特定の数になると言われる地域が与えられます。Wikipediaの次の例を考えてみます。 そしてその解決策: 作成するプログラムは、リージョンを表す81文字のシーケンスとそれに続く一連の数字で構成される形式になります。次に、シーケンスの各数値は、「A」、「B」などから始まる各文字領域の数値の合計を表します。 次に、解を表す81桁のシーケンスを出力します。 たとえば、上のパズルの例には次の入力があります。 AABBBCDEFGGHHCCDEFGGIICJKKFLMMINJKOFLPPQNJOORSPTQNUVVRSTTQWUUXXSYZWWaaXXSYZWbbbcc 3 15 22 4 16 15 25 17 9 8 20 6 14 17 17 13 20 12 27 6 20 6 10 14 8 16 15 13 17 結果の出力は次のようになります。 215647398368952174794381652586274931142593867973816425821739546659428713437165289 入力は有効であり、領域は常にA、B、...、Y、Z、a、b、...、zの順に表示されると想定できます。 (動作する最も短いコードが優先されます。)

9
セットを空にせずにばらばらにする
整数のセットがあるとします。セットの一部が重複する(つまり、要素を共有する)可能性があります。セットから要素を削除することで重複を取り除くことができますが、それらの一部は空になる可能性があります。それは残念だろう。それらを空にすることなく、すべてのセットをばらばらにすることはできますか? この状況では、セットに複数の要素を残す理由がないため、この問題は、各セットを1つの要素に減らすことで常に解決できます。これが、私たちがここで解決している問題のバージョンです。 タスク 次のようにプログラムまたは関数を記述します。 入力:整数のセットのリスト。 出力:入力と同じ長さの整数のリスト。 出力のすべての整数は区別されます。そして 出力の各整数は、対応する入力のセットの要素です。 明確化 要素の順序に関係なく、必要に応じて(または言語に適したものであれば)セットをリストとして表すことができます。 ソリューションが存在しない場合(つまり、常に少なくとも1つのソリューションが存在する場合)を処理する必要はありません。 複数の解決策がある場合があります。アルゴリズムは常に有効なソリューションを生成する必要がありますが、非決定的であることが許可されています(つまり、実行するたびに異なる有効なソリューションを選択することは問題ありません)。 入力に現れる個別の整数の数nは、入力のセットの数に等しく、簡単にするために、1からnまでの整数になります(実際の値は関係ないため)。この事実を利用するかどうかはあなた次第です。 テストケース [{1,2},{1,3},{1,4},{3,4}] -> [2,3,1,4] or [2,1,4,3] [{1,3},{1,2,4},{2,3},{3},{2,3,4,5}] -> [1,4,2,3,5] [{1,3,4},{2,3,5},{1,2},{4,5},{4,5}] -> [1,3,2,4,5] or [3,2,1,4,5] or [1,3,2,5,4] or [3,2,1,5,4] 勝利条件 プログラムは勝つために最適な時間の複雑さを必要とします。つまり、より時間の複雑さのあるアルゴリズムが見つかった場合、それはすべての遅いエントリを失格にします。(言語のビルトインは可能な限り高速であると想定できます。たとえば、ソートビルトインは時間O(n log n)で実行すると想定できます。同様に、nに匹敵するサイズのすべての整数を加算、乗算できると想定します。一定の時間で。) 最適な時間の複雑さはほとんどの言語でかなり簡単に取得できる可能性が高いため、勝者の時間の複雑さは、バイト数で測定すると、勝者が最も短いプログラムになります。

5
数独パズルに配置できるすべてのマークを取得する[終了]
休業。この質問には詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善してみませんか?詳細を追加し、この投稿を編集して問題を明確にしてください。 3年前休業。 数独パズルを考えて、各空のセルに記入できるすべての可能なマークを見つけます。 テストケース 入力: [ [ // Top left: [ 0, 0, 0, 3, 4, 0, 0, 0, 2 ], // Top middle: [ 7, 4, 0, 0, 0, 0, 0, 0, 3 ], // Top right: [ 8, 0, 0, 1, 7, 0, 0, 0, 0 ] …

3
PHPゴルフのヒント:ファイルの読み書きとCLI
私はゴルフは最近、およびなどのファイルからデータを読み取るために使用されている技術のいくつかの課題PHPコードの数に参加しているfopen()とfread()か、file_get_contents()本当に私のコードchar型の数に打撃を与えます。特に、コマンドライン入力を読み込むために提供されるメソッド。 私の質問は、ファイルの内容を読み書きする最速の方法(最小キーストローク)と、プロンプトから行を読み込む最速の方法(最小キーストローク)は何ですか? (注:これはコードゴルフなので、外部ライブラリは使用できません。)

3
14ペグのパズルを解く
前書き 一般的なパズルには、下の画像に示すように、ティー/ペグ用の15個の穴がある三角形のボードが含まれます。 一番上の穴を除いて、ボード内のすべてのペグから始めて、パズルのポイントは、チェッカーのようにペグを互いに飛び越えて、正確に1つのペグを残すことです。唯一有効な移動は、1つのペグを隣接するペグを越えて任意の方向に空の穴にジャンプすることです。ジャンプしたペグは、ボードから削除されます。有効な手が残っていない場合、プレイは終了します。 スペック あなたの仕事は、ペグパズルの完全なソリューションを見つけることができるプログラムを書くことです。考えられる解決策は複数あるので、プログラムは1つだけ印刷する必要があります。 プログラムは入力を受け取りません。外部ソースからのデータの読み取りは許可されていません。 この形式を使用して、残りの1ペグの結果が得られる13のムーブのリストを印刷します。 Peg 1 jumps Peg 3 to Hole 6. 穴/ペグには上から下、左から右に番号が付けられているため、上部のペグ/穴は1で、右下が15になるまで番号が付けられます。 プログラムは実行時にソリューションを見つける必要があります。プログラムで解決する以外の方法でソリューションを直接印刷すると、自動的に失格になります。 ボーナス:複数のユニークなソリューションを出力できる場合は、10ボーナスポイントを受け取ります(空白行で区切って印刷できます)。 ボーナス:数値15がソースコードのどこにも表示されない場合、5ボーナスポイントを受け取ります。 得点 これはコードゴルフなので、正しい答えを出力する(バイト数による)最短のソリューションが勝者となります。総バイト数からボーナスポイントが差し引かれます。プログラムの実行のサンプル出力とideone、可能であればプログラムの実行を示すリンクまたは同様のサイトへのリンクを提供してください。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.