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

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

30
アイデンティティマトリックスの構築
課題は非常に簡単です。入力が整数のn場合、n x n単位行列を出力します。単位行列は、1sが左上から右下に及ぶものです。作成した単位行列を返すまたは出力するプログラムまたは関数を作成します。出力は、2D配列、またはスペース/タブと改行で区切られた数値です。 入出力の例 1: [[1]] 2: [[1, 0], [0, 1]] 3: [[1, 0, 0], [0, 1, 0], [0, 0, 1]] 4: [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]] 5: [[1, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, …

30
StringgnirtSStringgnirtSStringgnirtS
これは比較的簡単なチャレンジです。 長さNの文字列が与えられると、文字列を前方に、次に後方に、次に前方に、次に後方に...などN回出力します。たとえば、入力が Hello! 出力する必要があります: Hello!!olleHHello!!olleHHello!!olleH オプションで、末尾の改行を1つ出力することもできます。 あなたの提出物は、完全なプログラムまたは機能のいずれかである可能性があり、任意の合理的な形式で入力および出力を行うことができます。たとえば、STDIN / STDOUT、関数の引数と戻り値、ファイルなどからIOを取得できます。入力文字列は空ではなく、印刷可能なASCIIのみを含むと安全に想定できます。新しい文字列を1行で出力する必要があります。したがって、たとえば、最後の例の出力が Hello! !olleH Hello! !olleH Hello! !olleH これは有効な解決策ではありません! 以下に、さらにいくつかのテストケースを示します。 Input: a Output: a Input: abcd Output: abcddcbaabcddcba Input: OK! Output: OK!!KOOK! Input: 4815162342 Output: 4815162342243261518448151623422432615184481516234224326151844815162342243261518448151623422432615184 Input: PPCG Output: PPCGGCPPPPCGGCPP Input: 42 Output: 4224 リーダーボード これはコードゴルフの挑戦なので、標準的な抜け穴は禁止され、バイト単位の最短回答が勝ちます!ただし、これは特定の言語で最短の回答を得るための競争でもあります。Javaの答えがperlや他のゴルフ言語の答えに勝る可能性は低いですが、Javaの最短の答えを持つことは依然として非常に印象的です。したがって、このリーダーボードを使用して両方を表示できます すべての言語の中で最も短い回答、および 個々の言語での最短回答。 回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。 # Language Name, N …
42 code-golf  string  code-golf  math  geometry  data-structures  repeated-transformation  code-golf  number  random  code-golf  math  rational-numbers  code-golf  ascii-art  animation  code-golf  ascii-art  number  code-golf  math  number  code-golf  data-structures  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
このアルカサルを私のために解決してください
最近、アルカザールと呼ばれるゲームをプレイしています。ボードパズルゲームです。1つのドアから入り、すべての広場を通過し、別のドアから出ることが目標です。唯一のルールは次のとおりです。 一度入力し、一度離れます。 すべての正方形を通過します。 正方形を複数回通過しないでください 以下の画像は、アルカサルのボードとその右側の解決済みパズルの例を示しています(もちろんこれは簡単なパズルです)。 http://www.theincrediblecompany.com/try-alcazarでさらにパズルを見つけて、PlayStoreでゲームをダウンロードできます(PS:広告ではありません)。 私の問題は、1つのレベルを除いて、ゲームをほぼ終了したことです。私はそれを解決する方法を見つけることができません。したがって、私が提案する課題は、通常の1可解2アルカサルレベルを解決するアルゴリズムを作成することです。 もちろん、画像を読み取ってパズルを解くために画像インタープリターを作成するように誰かに求めているわけではありません(または私ですか?)。そこで、私はボックス描画文字を使用して上記のパズルを作り直しました。パズルとその解決策は次のようになります。 ╔═══════╗ ╔═══════╗ ║▒ ▒ ▒ ▒║ ║┌─┐ ┌─┐║ ║ ║ ║ ║│ │ │║│║ ╣▒ ▒ ▒║▒╠ ╣│ └─┘║└╠ ║ ══╦═╩═╣ ║│══╦═╩═╣ ║▒ ▒║▒ ▒║ ║└─┐║┌─┐║ ║ ║ ║ ==> ║ │║│ │║ ╣▒ ▒║▒ ▒║ ╣┐ │║│ │║ ║ ║ ║ …

5
コンパイル時に8つのクイーンの問題を解決する[終了]
コンパイル時に8つのクイーンのパズルを解くことができますか? 適切な出力形式を選択します。 私は特にC ++テンプレートメタプログラミングソリューションに興味がありますが、たとえばHaskellの型システムなど、同様の構造を持つ言語を使用できます。 理想的には、メタプログラムはすべてのソリューションを出力します。ハードコーディングなし。

3
ルービックキューブを解く
ルービックキューブ(3 * 3 * 3)を妥当な時間内に解決する最短のプログラムを作成し、移動します(たとえば、マシン上で最大5秒、1000回未満の移動)。 入力の形式は次のとおりです。 UF UR UB UL DF DR DB DL FR FL BR BL UFR URB UBL ULF DRF DFL DLB DBR (この特定の入力は、解決されたキューブを表します)。 最初の12個の2文字の文字列は、UF、UR、... BL位置のエッジ(U =上、F =前、R =右、B =後、L =左、D =下)であり、次の8 3文字の文字列は、UFR、URB、... DBR位置のコーナーです。 出力は、次の形式で一連の動きを示します。 D+ L2 U+ F+ D+ L+ D+ F+ U- F+ D1またはD +はD(下)面を時計回りに90度回転することを表し、L2はL面を180度回転し、U3またはU-はU面を反時計回りに90度回転することを表します。 …

6
色彩パズルを解く
Puzzling.SEの友人に次のパズルが投稿されました。この色彩パズルは常に解決可能ですか?エドガー・G。ここでプレイできます。 パズルの説明 m x n3つの異なる色のタイルを含むグリッドがある場合、色が異なる場合は、隣接する2つのタイルを選択できます。これらの2つのタイルは、3番目の色、つまり、これら2つのタイルで表されない1つの色に変換されます。すべてのタイルが同じ色を持っている場合、パズルは解決されます。どうやら、1ができることを証明どちらも場合は、このパズルは、常に解決可能であることも3で割り切れるされません。mn もちろん、これは解くアルゴリズムを求めます。このパズルを解決する関数またはプログラムを作成します。「副作用」を持つ関数(つまり、stdoutいくつかの厄介なデータ型の戻り値ではなく出力がオンになっている)は明示的に許可されていることに注意してください。 入出力 入力はm x n、整数1、2および3(または0、便利な場合1、2)で構成される行列になります。この入力は、適切な形式で入力できます。どちらmとnしている>1あなたは、パズルが解決されていないと仮定して3で割り切れないと その後、パズルを解きます。これには、「変換」される2つの隣接するタイルを繰り返し選択する必要があります(上記を参照)。これらのタイルの2つの座標を、解決アルゴリズムが実行した各ステップに対して出力します。これは、任意の健全な出力形式でもかまいません。座標の0から1のインデックス付けと、行または列のどちらを最初にインデックス付けするかを自由に選択できます。ただし、これを回答に記載してください。 元の8x8のケースでは、アルゴリズムは妥当な時間内に実行されるはずです。明示的に許可されていない、それを完全にけだもの強制、あなたのアルゴリズムがもとで実行する必要がありますつまりO(k^[m*(n-1)+(m-1)*n])とk解決のために必要なステップの数。ただし、ソリューションは最適である必要はありません。リンクされた質問で与えられた証拠は、これを行う方法についてのアイデアを与えるかもしれません(例えば、最初に垂直に隣接するタイルのみを使用してすべての列を実行し、次にすべての行を実行します) テストケース これらのテストケースでは、座標は1から始まり、行に最初にインデックスが付けられます(MATLAB / Octaveおよびおそらく他の多くのものと同様)。 Input: [1 2] Output: (result: all 3's) [1 1],[1,2] Input: [ 1 2 3 1 ] Output: (result: all 1's) [1 1],[2 1] (turn left column into 2's) [2 1],[2 2] (turn right column …

7
小さな探検家
あなたは探検家であり、未知の世界をマッピングします。あなたの船は風に乗って運ばれます。どこに行くのか、誰が知っていますか? 毎日、あなたのスパイグラスには、北、南、東、西の地物が見えます。あなたは常に基本的な方向に対応する4つのそのような特徴を見ます。スパイグラスは、次のようなASCIIシンボルを報告します。 ~~.*、~~~~、~.^^、~#~# シンボルは順番に並んでいます(北、南、東、西)。 これらは次の記号です。~=海、.=海岸、^=山、*=木、#=無効(観測なし、これは世界の端を見るたびに発生するか、風景が霧で覆い隠されます)。あなたのスパイグラスは、あらゆる方向に正確に1つのユニットを見ます。 毎晩、あなたは星を見上げて、あなたがどこまで旅したかを確かめます。星を見ると、次のようなアスキー記号が表示されます。 n、s、e、w 北、南、東、西にそれぞれ対応します。毎晩、北、南、東、または西に常に1ユニットだけ移動します。エクスプローラーがシンボルの無限のストリームを受け取るように、あなたは: ~~.*n~~~~s~~.*s~.** あなたの仕事は、世界の2D地図を出力することです(地図の?未知の部分は北、上は東、右は東です): ?~~~?????? ?~~~?????? ?~~~.^^.?? ?~~.***.~~ ~~.*^^*.~~ ~~~..~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ 簡単にするために、マップの左下隅から開始すると仮定します。すべてのマップが8x8であると仮定します。 簡単な3x3の例を次に示します。マップは次のようになっていると仮定します。 ~.~ ~^~ ~.~ 次の入力で: ~#.#n~~^#s 次の出力が得られます。 ~?? ~^? ~.? その他の入力と出力の例: 入力 ~#~#n~~~#n~~~#n~~~#n~~~#n~~.#n~~.#n#~~#e#.~~e#.~~e#.~~e#.~~e#~~~e#~~~e#~#~s~~#~s~~#~s~~#~s~~#.s~~#~s~~#~s~##~w~#~~w.#~~w^#~~w.#~~ 出力 ~~~~~~~~ ~....~~~ ~.????~~ ~~????~~ ~~????.~ ~~????~~ ~~?.^.~~ ~~~~~~~~ 入力: ~#~#e~#~~e~#~~e.#~~e^#~~n.~..n~^~.n~.~~n.~~.n.~~*n~.~.n#.~~w#.~~w#.~~s~*..s..*.s*~.~s.~~~s 出力: ?~~~~~?? ?....~?? ?.**.~?? ?~..~~?? ?~~~~~?? ?~~..~?? …

17
Flood Paint AIを作成する
Flood Paintのゲームでは、ゲームの目標は、ボード全体をできるだけ少ないターンで同じ色にすることです。 ゲームは次のようなボードから始まります。 3 3 5 4 1 3 4 1 5 5 1 3 4 1 1 5 2 1 6 5 2 3 4 3 3 4 3 4 4 4 5 5 5 4 1 4 6 2 5 3[3]1 1 6 6 5 5 1 2 …

8
金の鎖を切る
旅行者は町の外のホテルにn日間滞在する必要があります。彼は現金が不足しており、クレジットカードの有効期限が切れています。しかし、彼はnの金の鎖を持っていますリンクます。 このホテルのルールでは、住民は毎朝家賃を支払う必要があります。旅行者は、マネージャーとの間でゴールデンチェーンのリンクを毎日支払うことに同意します。しかし、マネージャーはまた、旅行者が毎日支払いながらチェーンに可能な限り損害を与えないように要求しています。言い換えれば、彼はできるだけ少ないリンクをカットする解決策を考え出さなければなりません。 リンクを切断すると、3つのサブチェーンが作成されます。1つは切断されたリンクのみを含み、もう1つは両側にあります。たとえば、長さ8のチェーンの3番目のリンクを切断すると、長さ[2、1、5]のサブチェーンが作成されます。マネージャーは変更を喜んで行うため、旅行者は長さ1のチェーンで1日目を支払い、次に長さ2のチェーンで2日目を支払い、最初のチェーンを取り戻すことができます。 コードは長さnを入力する必要があります最小長のカットへのリンクのリストを出力する必要があります。 ルール: nは0より大きい整数です。 リンクには0ベースまたは1ベースのインデックスを使用できます。 一部の数値では、ソリューションは一意ではありません。たとえば、n = 15両方[3, 8]と[4, 8]有効な出力です。 リストを返すか、適切な区切り記号を付けて印刷できます。 これはcode-golfであるため、バイト単位の最短コードが優先されます。 テストケース: Input Output (1-indexed) 1 [] 3 [1] 7 [3] 15 [3, 8] 149 [6, 17, 38, 79] 詳細な例 以下のためのN = 15、リンク3及び長さのサブチェーンで8つの結果を切断します[2, 1, 4, 1, 7]。これは有効なソリューションです: 1 = 1 2 = 2 3 = 1+2 4 …

30
賢い人のMira気楼
むかしむかし、Quoraでこの質問/回答を読んでいた FizzBu​​zzテストに合格できないコンピューターサイエンスの学位を持つプログラマーは本当にいますか このコードは明白な答えとして与えられます for i in range(1, 100): if i % 3 == 0 and i % 5 == 0: print "FizzBuzz" elif i % 3 == 0: print "Fizz" elif i % 5 == 0: print "Buzz" else: print i もちろん、FizzBu​​zzは死ぬまでゴルフにかけられましたが、それはこの質問の目的ではありません。あなたはコメントで、4の倍数の印刷「ジャズ」などの追加条件を簡単に追加できるので、この明白な答えは素晴らしいと誰かが言及していることがわかります(同意しません。このスキームを拡張するにはO(2 ** n )コード行。) あなたの挑戦は、仲間によって判断されるようにFizzJazzBuzzの最も美しいバージョンを書くことです。 投票者が考慮すべき事項: ドライ 除算/モジュラス演算の効率 Quoraに関する回答の多くはPythonを使用していましたが、ここではそのような言語の制限はありません。 …
29 popularity-contest  code-challenge  word  popularity-contest  string  grid  language-design  code-golf  source-layout  math  fastest-algorithm  assembly  code-golf  json  code-golf  arithmetic  array-manipulation  code-golf  ascii-art  code-golf  crossword  code-golf  string  restricted-complexity  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  decision-problem  balanced-string  syntax  code-golf  grid  puzzle-solver  hexagonal-grid  code-golf  math  number  sequence  code-golf  string  decision-problem  code-golf  cryptography  king-of-the-hill  code-challenge  fastest-code  code-golf  number  code-golf  code-golf  string  code-golf  cryptography  king-of-the-hill  java  code-golf  number-theory  base-conversion  code-golf  code-golf  array-manipulation  code-golf  array-manipulation  sorting  code-challenge  restricted-source  quine  code-golf  tips  python  king-of-the-hill  code-golf  source-layout  fractal  code-golf  tips  game  king-of-the-hill  path-finding  grid  code-golf  kolmogorov-complexity  natural-language  code-golf  tips  python  code-golf  number  arithmetic  sequence  array-manipulation  code-golf  number  combinatorics  random  integer-partitions  code-golf  string  code-golf  vim  comment  code-golf  combinatorics  counting  code-challenge  rosetta-stone  code-golf  combinatorics  sequence  subsequence  code-golf  code-challenge  restricted-source  primes  printable-ascii  popularity-contest  graphical-output  image-processing 


2
ノノグラムラインのブルートフォース解法
バックグラウンド PiogramまたはGriddlersとも呼ばれるNonogramは、各行の連続した色付きセルの数を使用して、2Dグリッド上の各セルを色付けするか空白のままにするかを決定するパズルです。 以下は、ソリューションを使用したNonogramパズルの例です。 問題は、一部の市販のNonogramゲーム/モバイルアプリには、手で解決できないパズルがある(たとえば、複数のソリューションがある、または深いバックトラッキングが必要)ことです。ただし、それらはプレイヤーにいくつかの命を提供します。正解が空白のセルを着色しようとすると、1つの命が失われます。だから今、それらの厄介な「パズル」をブルートフォースする時です! タスクを単純化するために、その手がかりと他の何もない1行だけを想像してください。 3 7 | _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [3,7]手がかりであり、ラインの長さは、15個の細胞です。複数の可能な解決策があるため、この線を完全に解決する(つまり、すべての色の付いたセルを決定する)ために、いくつかの命を危険にさらす必要があります。 チャレンジ 手がかり(正の整数のリスト)と行の長さのある行が与えられた場合、最適な戦略で行を総当たり攻撃すると仮定して、失う命の最大数を見つけます。 色付きのセルを常に推測することに注意してください。実際のゲームでは、空のセル(正しいか間違っているか)を推測してもあなたの生活には影響しません。そのため、パズルをそのように「解決」することはできません。 また、入力は常に有効な非グラム行を表すと想定できるため、などのことを心配する必要はありません[6], 5。 説明 最初にいくつかのより簡単な例を見てみましょう。 [1,2], 5 この行にOは、正確に3つの可能性があります(色付きのセル、.空のセル): O . O O . O . . O O . O . O O セル0(左からの0から始まるインデックス)を着色しようとすると、次のいずれかが発生します。 …

9
3 x 3の頑丈な正方形をすべて印刷する
(に似頑丈角魔方陣は)Nの整数1の配置である2毎に2×2のサブグリッドが同じ和を有するようにN Nによってグリッドに。 たとえば、N = 3の場合、1つの頑丈な正方形は 1 5 3 9 8 7 4 2 6 なぜなら、2 x 2の4つのサブグリッド 1 5 9 8 5 3 8 7 9 8 4 2 8 7 2 6 すべて同じ額になります23: 23 = 1 + 5 + 9 + 8 = 5 + 3 + 8 + …
24 code-golf  number  arithmetic  number-theory  grid  code-golf  binary  code-golf  popularity-contest  code-golf  chemistry  code-golf  code-golf  date  code-golf  quine  chess  code-golf  hexadecimal  code-golf  number  arithmetic  sequence  array-manipulation  code-golf  math  date  code-golf  typography  code-golf  string  code-golf  string  code-golf  code-golf  math  arithmetic  array-manipulation  grid  code-golf  puzzle-solver  code-golf  music  audio  code-golf  decision-problem  code-golf  geometry  code-golf  number  bitwise  code-golf  string  metagolf  hexagonal-grid  code-golf  string  code-golf  sorting  popularity-contest  code-golf  game  sequence  base-conversion  binary  code-golf  decision-problem  graph-theory  natural-language  code-golf  math  parsing  optimized-output  code-golf  array-manipulation  code-golf  graphical-output  image-processing  tiling  code-golf  graph-theory  path-finding  chess  code-golf  code-golf  balanced-string  code-golf  number  code-golf  sequence  code-golf  math  arithmetic  statistics  code-golf  chemistry 

15
セミパリンドロームパズル
回文とは、それ自体が逆の言葉です。 今ではパリンドロームのように見えるかもしれないがそうではない単語がいくつかあります。たとえば、単語 はパリンドロームsheeshで sheeshはありません。その逆はhseehsどちらが異なるかを考えshてみましょう。しかし、単一の文字と考えると、逆はになりsheeshます。この種の単語をセミパリンドロームと呼びます。 具体的には、単語をいくつかのチャンクに分割して、チャンクの順序が逆になったときに元の単語が形成される場合、単語はセミパリンドロームです。(sheeshこれらのチャンクはsh e e sh)単語の両方の半分からの文字を含むチャンクも必要ありません(そうでない場合、すべての単語はセミパリンドロームになります)。たとえば、元の単語の両側の文字を含むチャンク()があるrearため、セミパリンドロームではありません。奇数の長さの単語の中心文字は単語のどちら側にもないと考えます。したがって、奇数の長さの単語の場合、中心文字は常に独自のチャンクになければなりません。r ea rea あなたの仕事は、正の整数のリストを取得し、それらがセミパリンドロームかどうかを判断することです。コードは、入力がセミパリンドロームの場合とそうでない場合の2つの一貫した等しくない値を出力する必要があります。ただし、コードのバイトシーケンスはセミパリンドロームそのものでなければなりません。 回答はバイト単位でスコアリングされ、バイト数が少ないほど優れています。 テストケース [] -> True [1] -> True [2,1,2] -> True [3,4,2,2,3,4] -> True [3,5,1,3,5] -> True [1,2,3,1] -> False [1,2,3,3,4,1] -> False [11,44,1,1] -> False [1,3,2,4,1,2,3] -> False より多くのテストケースを生成するプログラム。 恐ろしいことは、これらが一般化されたスマランダチェ回文に似ていることを指摘した。したがって、さらに読みたい場合は、1つの場所から始めてください。

3
15パズルを解く(タイルスライドパズル)
15パズルは、4x4グリッド上で15個のタイルをスライドさせる有名なパズルです。ランダムな構成から始めて、目標はタイルを正しい順序に並べることです。解決された15パズルの例を次に示します。 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 パズルの各動きは、上/下/左/右の形式です。「下へ」の移動は、空のスポットの上にあるタイルを下にスライドさせることで構成されます。「右」の動きは、タイルを右にスライドさせて空の場所に入れることです。下と右に移動した後のボードの外観は次のとおりです。 01 02 03 04 05 06 07 08 09 10 11 13 14 15 12 このチャレンジの目標は、15パズルを解くために必要な一連の動きを出力できるプログラムを書くことです。勝者は、5つのテストケース(以下)を最小の合計移動で解決するプログラムです。生成されたソリューションは完全なソリューションである必要はなく、競合他社よりも優れている必要があります。個々のテストケースごとに、プログラムは適切なマシンで10秒以上かかることはありません。 あなたのプログラムは解決可能なパズルを解くことができなければなりません、私はこれらの5つのテストケースを採点として使用しています。 プログラムは、未解決の15パズルを2D配列の形式で入力として受け取ります。2D配列は、使用する言語に従ってフォーマットするか、言語に2D配列がない場合は変更できます。最初のサブ配列の最初の要素は左上の数字になり、最初のサブ配列の最後の要素は右上にある数字になります。A 0は空のスペースになります。 出力として、プログラムは移動のリストを実行する必要がある順序で印刷する必要があります。結果の使いやすさを高めるために、各ステップに番号を付ける必要があります。 編集:コメントに基づいて、出力をDown / Up / etcの形式または移動するピースの座標の形式にすることができます。これはコードゴルフではないので、最も重要な部分はパズルを解くことです。 他の一般的な規則には、外部ソースの使用などが含まれないものがあります。 テストケース1 ([5,1,7,3],[9,2,11,4],[13,6,15,8],[0,10,14,12]) 出力例: 1: Down 2: Down …

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