0

int[4][4]マトリックスを返す動的マトリックス ジェネレーター クラスが必要です。値は 1 から 16 の間である必要があり、反復値はありません。

マトリックス ソリューションは次のようになります。

ここに画像の説明を入力 またここに画像の説明を入力

マトリックス画像を注意深く観察すると、すべてのマトリックスがマトリックスの値の位置に特定のロジック/パターンを持っていることがわかります。パターンが何であるかは重要ではありませんが、パターンを維持することは重要です (つまり、あらゆるタイプのパターンが存在する必要があります)。現在、次のような静的コードを使用しています。

// for the second image    
int temp4[][] = { { 1, 2, 3, 4 }, { 12, 13, 14, 5 },
                        { 11, 16, 15, 6 }, { 10, 9, 8, 7 } }; 

現在、私は 3/4 の静的パターンを持っていますが、これを静的に実装するのは悪いアプローチです。ランタイムにランダム パターンが必要なため、動的にする必要があります。

だから私の質問は:このような解決策を作ることは可能ですか?? コードは何でしょう?? これに関連するリンクを知っている場合は、それを投稿するか、生のコードを投稿してください。

前もって感謝します。


アップデート

この質問のパターンの意味は何ですか??

1 番目の行列を注意深くたどると、1 列目: 1,2,3,4、2 列目: 5,6,7,8 などの数が表示されます。

2 番目の行列の場合、1 番目の行は 1,2,3,4 で、5,6,7 として下向きになり、8,9,10 ans として戻ります。

別のパターンは、1 列目: 1,2,3,4、2 列目: 5,6,7,8 のようになるため、行列は次のようになります。

1 5 9 13

2 6 10 14

3 7 11 15

4 8 12 16 など

int[4][4]したがって、1から16までの非反復値で返されるマトリックスジェネレーターが必要であり、値は順序付けられている必要があります。別のパターンは次のようになります。

ここに画像の説明を入力ここに画像の説明を入力

上記の2つのパターンは次のとおりです。

ここに画像の説明を入力

4

1 に答える 1

0

あなたの更新に基づいて、各パターンの戦略を作成します。各パターンでは、開始点、方向、昇順または降順 (許可されている場合) を選択できます。

パターンのセットができたら、ランダムに 1 つを選択してランダム化するか、考えられるすべてのパターンを生成してランダムに 1 つ選択することができます。


Collections.shuffle() を使用して、繰り返しのない値をランダムな順序で生成できます

次に、マトリックスをテストして、十分なパターンがあるかどうか、または許容できるかどうかを確認できます。そうでない場合は、できるまで繰り返します。

于 2012-07-06T14:58:09.603 に答える