2011-03-08 18 views
1

0から100までの乱数を持つ多次元配列を初期化しようとしています。私は、各フィールドで空の値を持つ多次元配列を作成し、利用可能な位置に100個の乱数を追加することができます。ランダム初期化多次元配列

しかし、多次元配列をランダムな自然数で初期化する方法があるかどうかを知りたいと思います。たとえば、次のような小さなものを探しています。

double[][] array = new double[][] {{0, 1, 2} , {1, 0, 3} , {2, 3, 0}}; 

これは可能ですか?私は何かを考えている:

double[][] array = new double[][] {{random values go here},{random values go here}}; 

何か提案がありますか?

読んでいただきありがとうございます。

ミック

+0

あなたは一度だけ乱数を生成するために探している、またはそれは、すべての実行時に乱数の新しいセットすべきですか? –

+0

こんにちはKevin、私は毎回の乱数の新しいセットを生成するために探しています。 – MusTheDataGuy

答えて

3

アレイを作成し、それをforループで初期化します。 Random.nextInt(n)は必要なものを提供します。

ここには3つの異なるランがあるサンプルコードがあります。

import java.util.*; 
class Init { 
    public static void main(String ... args) { 

     Random random = new Random(); 

     double[][] array = new double[10][10]; 

     for(int i = 0 ; i < array.length ; i++) { 
      for (int j = 0 ; j < array[i].length ; j++) { 
       array[i][j] = random.nextInt(101); 
      } 
     } 

     for(double[] a : array) { 
      System.out.println(Arrays.toString(a)); 
     } 
    } 
} 

出力:

C:\Users\oreyes\langs\java>java Init 
[2.0, 92.0, 31.0, 98.0, 3.0, 5.0, 57.0, 41.0, 29.0, 89.0] 
[54.0, 57.0, 68.0, 92.0, 11.0, 20.0, 14.0, 58.0, 84.0, 23.0] 
[48.0, 14.0, 9.0, 33.0, 9.0, 27.0, 74.0, 34.0, 85.0, 91.0] 
[51.0, 87.0, 2.0, 96.0, 52.0, 81.0, 91.0, 95.0, 19.0, 56.0] 
[15.0, 90.0, 9.0, 85.0, 51.0, 23.0, 35.0, 21.0, 78.0, 14.0] 
[23.0, 20.0, 57.0, 94.0, 69.0, 99.0, 90.0, 78.0, 61.0, 38.0] 
[35.0, 61.0, 81.0, 72.0, 3.0, 93.0, 20.0, 96.0, 9.0, 35.0] 
[90.0, 100.0, 98.0, 14.0, 95.0, 75.0, 96.0, 8.0, 87.0, 25.0] 
[14.0, 41.0, 27.0, 57.0, 32.0, 37.0, 69.0, 61.0, 5.0, 42.0] 
[57.0, 0.0, 85.0, 28.0, 78.0, 47.0, 89.0, 54.0, 50.0, 59.0] 

C:\Users\oreyes\langs\java>java Init 
[3.0, 27.0, 37.0, 31.0, 52.0, 19.0, 63.0, 81.0, 88.0, 12.0] 
[80.0, 27.0, 7.0, 55.0, 21.0, 100.0, 73.0, 62.0, 9.0, 91.0] 
[85.0, 50.0, 66.0, 27.0, 63.0, 44.0, 0.0, 37.0, 93.0, 82.0] 
[73.0, 57.0, 4.0, 80.0, 5.0, 51.0, 63.0, 13.0, 97.0, 11.0] 
[87.0, 62.0, 20.0, 14.0, 44.0, 77.0, 71.0, 42.0, 27.0, 82.0] 
[37.0, 32.0, 96.0, 95.0, 45.0, 8.0, 11.0, 38.0, 61.0, 6.0] 
[34.0, 67.0, 84.0, 50.0, 38.0, 64.0, 50.0, 51.0, 50.0, 47.0] 
[79.0, 31.0, 54.0, 37.0, 27.0, 54.0, 57.0, 30.0, 77.0, 36.0] 
[74.0, 20.0, 98.0, 37.0, 8.0, 17.0, 18.0, 1.0, 29.0, 56.0] 
[21.0, 4.0, 33.0, 87.0, 4.0, 76.0, 65.0, 62.0, 76.0, 96.0] 

C:\Users\oreyes\langs\java>java Init 
[17.0, 3.0, 78.0, 32.0, 99.0, 76.0, 94.0, 93.0, 31.0, 55.0] 
[4.0, 25.0, 63.0, 68.0, 58.0, 39.0, 7.0, 55.0, 73.0, 86.0] 
[96.0, 89.0, 6.0, 100.0, 20.0, 58.0, 100.0, 91.0, 35.0, 46.0] 
[3.0, 16.0, 88.0, 82.0, 85.0, 35.0, 0.0, 1.0, 91.0, 78.0] 
[3.0, 33.0, 77.0, 10.0, 69.0, 60.0, 75.0, 58.0, 8.0, 31.0] 
[72.0, 36.0, 2.0, 19.0, 39.0, 15.0, 5.0, 74.0, 16.0, 28.0] 
[48.0, 71.0, 38.0, 17.0, 37.0, 34.0, 80.0, 98.0, 16.0, 42.0] 
[66.0, 74.0, 96.0, 80.0, 75.0, 7.0, 14.0, 46.0, 63.0, 56.0] 
[4.0, 15.0, 8.0, 93.0, 58.0, 21.0, 81.0, 100.0, 2.0, 44.0] 
[20.0, 71.0, 41.0, 43.0, 83.0, 7.0, 60.0, 28.0, 99.0, 42.0] 
+0

この素晴らしい答えをありがとうございます。残念ながら、これを試してみるとエラーが発生します。エラーは次の行に表示されます。array [i] [j] = random.nextInt(101);それは 'nextInt'をハイライト/アンダーラインし、次のメッセージを表示します: "メソッドnextInt(int)はInteger型のために定義されていません"。何が問題なの?ありがとう、OscarRyz。 – MusTheDataGuy

+0

ランダムを 'Integer'と定義し、' Random random = new Random() 'と宣言します。 – OscarRyz

+0

私はそれを試みましたが残念ながら残念ながら...私のどこかにエラーがあります日食が検出されていないプロジェクト? – MusTheDataGuy

1

Random.nextInt()はあなたがやりたいだろうか?

+1

Random.nextInt(101)はこのトリックを行います。 –

+0

皆さんありがとうございますが、残念ながらこれはうまくいきません。私は3D配列にRandom.nextInt()/ Random.nextInt(101)メソッドを実装する方法を尋ねてもいいですか?ありがとう。 – MusTheDataGuy

関連する問題