1

1 から 9 までのすべての数値が 1 回だけ出現するように、3*3 の多次元配列をすべて生成する関数を Java でどのように作成すればよいでしょうか?

ありがとう!

4

3 に答える 3

5

基本的に、 series のすべての順列を探していますが、[1, 2, ... 9]それらを の行列に分割していることに注意してください3x3

順列の数が9!(階乗 9) であることを数学的に証明するのは簡単です。

順列を生成するアルゴリズムは多数あります。最も便利だと思うものを選択してください。たとえば、ウィキペディアで

于 2009-04-05T10:42:05.757 に答える
0

注:これは、OPによると、実際には宿題ではありません。

どこまで行きましたか?宿題のように聞こえますが、それで問題ありません。SO はおそらく役に立ちますが、どれだけの作業を行ったかを示す必要があります。SO はより良いプログラマーを作ることです。あなたができることを私たちに見せてください。

于 2009-04-05T10:37:38.233 に答える
0

私は小さく始めますが、2*2 配列の場合はどうしますか? 手動で行います。つまり、可能なすべての 2*2 配列を書き始めます。どのようにしますか?次に、コードでそれを行う方法を考えてください。2*2 に対して実行すると、結果が適切に見えるかどうかを目で確認できるため、正しい軌道に乗っているかどうかがわかります。

これは基本的に順列の問題です。小さな数でそれを見つけたら、同じ解決策を拡張する必要があります。

于 2009-04-05T10:42:43.807 に答える