問題タブ [latin-square]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
language-agnostic - ラテン方陣ジェネレーター? (数独的制約問題)
目的
これらの制約に従う必要がある実験計画のために、ラテン方陣 (数独のようなシーケンス) を設計しています。
- 値を続けて繰り返すことはできません
- 列内で値を繰り返すことはできません
- 2 つの行でペアごとに値を繰り返すことはできません
最初の 3 つの制約の例:
ここでは、素数を選択しましたが、値は任意です (6 つの異なる値がある限り)。これは 6 x 6 グリッドの数独と同じですが、行全体で繰り返されるペア (バイグラム) がないという追加の制約があることに注意してください。つまり2 3
、最初の行にのみ表示され、他の行には表示されず、他のすべてのペアについても同様です。
- 値は、これらの制約に適合する別の 6 つの値とペアにする必要があります。
- 2 番目の設定値を続けて繰り返すことはできません
- 2 番目に設定された値を列で繰り返すことはできません
- 第 1 セットの値と組み合わせると、第 2 セットの値を繰り返すことはできません。
つまり、最初の 6 つの値とペアになる別の 6 つの値 (これも任意です。「a、b、c、d、e、f」のいずれか) が必要です。最後の制約は、 ( 2
, a)どこでも使用すると、再度使用できないことを意味します。
最後の 2 番目のセットの制約が問題です。n = 6 の nxn グリッドの解はありません。ラテン方陣の「ちょっとした」直交ペアを作成するために、繰り返しの数を最小限に抑えたいと考えています。
質問
以前にこの問題に遭遇したことがありますか? (解決策を生成するツールがあれば、それは素晴らしいことです。) この目的のために必要な例は 1 つだけです。すでにいくつかの異なる構築戦略を試しました。
そのためのソルバーを作成するというアイデアをいじっていますが、何かが既に存在する場合はそれを避けたいと考えています。
c - この C 関数を理解する
この関数がどのように機能するかを理解しようとしています。数独パズルを生成するためのいくつかのアルゴリズムを研究し、これを見つけました。
関数をテストしたところ、有効な 9x9 ラテン方陣 (数独) グリッドが生成されました。私の問題は、関数がどのように機能するか理解できないことです。構造体が ints、p および b によって形成されることは知っています。 p はテーブル内のセルの番号を保持しますが、その後は理由がわかりませんより多くの配列(タブ1とタブ2)を作成し、ラテン正方形をチェックする方法 =/ などを要約すると、完全に失われました。
この関数の背後にある一般的な概念である行ごとの説明を求めているわけではありません。私を大いに助けてくれるでしょう!
もう一度ありがとう<3
EDIT 素晴らしい、私は構造を理解しました。lijie の回答に感謝します。私がまだ理解していないのは、ランダムな順序で値を試す部分です)。また、乱数を配置した後、グリッドが再度有効かどうかを確認する必要がありますか? –</p>
html - ラジオボタンに「数独のような」(ラテン方格)制約を適用します
私のGUIでは、ラジオボタンの3x3配列が必要であり、各行で1つだけを選択でき、各列で1つだけを選択できるように制限されています。
これは、Javascriptなしでクライアント側で可能ですか(javascriptを使用できますが、JavaScriptがオフの場合のフォールバックが必要です)。それとも、私の唯一のオプションであるJavascriptとサーバー側の強制ですか?
java - Java: ラテン方陣を実装するために使用される、多次元配列内の連続領域
潜在的なラテン方陣を読み取り、それが有効なラテン方陣かどうかを判断するプログラムを作成しています。今、選択したリージョンが連続したリージョンかどうかを確認しようとしています。
潜在的なラテン スクエアと地域の場所が同時に読み込まれます。リージョン[0,1][0,2][1,1][1,2]
は連続しているため、有効なリージョンになります。 到達できない[0,0][0,2][1,1][1,2]
ため、連続または有効ではありません。[0,0]
それらが連続しているかどうかはどうすればわかりますか?
c# - ランダムラテン方格連続ループの生成
ランダム グリッド、ラテン方陣、数独を生成するプログラムに取り組んでいます。私はラテン方陣に取り組んでおり、連続ループにいることを除いて、ほとんどすべてが機能しています。それらを分割すると、正常に動作します。おそらく私が間違っている小さな何かがあり、それを見つけることができません。何が悪いのか分かりますか?
編集:ラテン方陣が何であるかを知らない人のために(誰かが知らない場合)、通常は行にも列にも繰り返しがない9x9グリッドです.
更新: if(notSame) ステートメントの直前に、notSame が true に等しいという問題が見つかりました。常に true に等しいため、行のチェックが終了しませんでした。実行すると、連続ループではなくなりましたが、代わりに行には繰り返しがありませんが、列にはまだ繰り返しがあります。
更新 #2: 列のコーディングの多くをやり直しました。私の教授は私にいくつかのことを変更するように頼みましたが、それでも私は継続的なループに陥っています.
グリッドと呼ばれる 2D 配列を使用しています。
r - ANOVA を使用した R 言語での反復ラテン方陣分析
2 つの処理と 2 つのブロック変数 (参加者とプロセス) を使用して 1 因子 (ツール) の実験を実行しています。つまり、2x2 のラテン方陣です。
ブロック変数の 1 つは参加者です。私のサンプルには 8 人の参加者がいるので、4 つの 2x2 ラテン方陣があります。
1 つのラテン方陣のみの分析を行うために、R で次のコマンドを使用して ANOVA を使用しています。
私の質問は次のとおりです: R で複製されたラテン方格を使用して ANOVA テストを実行するにはどうすればよいですか?
java - 乱数で 2D 配列を埋める
Ken Ken パズルを作成しようとするプロジェクトを開始しました。Ken Ken が何かわからない場合は、行または列に重複した整数値が存在しないという点で Sudoku に似ています。
新しい行ごとに作成された配列リストからの数値で 2D 配列を埋めようとしています。配列リストから取得した数値が、その行と列内の数値と一致しないかどうかを確認します。
コードを実行すると、リストから整数値を削除しようとすると、「Index Out Of Bounds」例外が発生します。正しい要素を取得していると思うので、なぜこれが起こっているのかわかりません。
これが私のコードです:
int GRID_SIZE = 4;
int[][] grid = new int[GRID_SIZE][GRID_SIZE];
List<Integer> nums = new ArrayList<Integer>();
これについていくつか質問があります。
まず、なぜ私はエラーが発生するのですか?
次に、グリッドに 2D 配列を使用するよりも優れたものと、数字を配置する方法はありますか?
最後に、ブレークを正しく使用していますか?
ご回答ありがとうございます。
prolog - Prolog-ラテン方格ソリューション
サイズNのラテン方格を見つけるためにPrologでプログラムを書こうとしています。
私は今これを持っています:
matrix - 行列を作成し、各行を並べ替えます
0 から N までのリストを作成し、それを並べ替えることができます。しかし、どうすれば から各行を行列と順列にすることができますかmatrix(2,L)
。