2016-09-05 3 views
1

質問:シードは10Lです。擬似乱数の値は0〜200の7つの擬似乱数値を生成して出力します。私が試したJavaで1回の実行でシードを持つ7つの擬似乱数を生成する方法

コード:

public static int randomGenerator() { 
    Random generator = new Random(10L); 
    return generator.nextInt(200 - 0) + 0; 
} 

System.out.println(randomGenerator()); 
+1

'nextInt'を7回呼び出すだけです(同じ' generator'では、新しいものを作成しないでください)。 – Thilo

+1

あなたのコードを見ていることが何の問題なのかはっきりしていますが、出力/エラーが何であるのか、何が問題なのかを必ず特定してください。 – 4castle

答えて

2

を7つの数字を生成するには、あなたは新しいRandomインスタンスを作成せずにnextInt方法7回を呼び出す必要があります。 「1回の実行で」7つの値をすべて返すには、配列またはListを返す必要があります。

これらの仕様に縛られないように、メソッドにいくつかのパラメータを与えることをお勧めします。数字の上に呼び出すスコープの反復で次に

public static int[] getRandomInts(long seed, int amount, int min, int max) { 
    return new Random(seed).ints(amount, min, max).toArray(); 
} 

それらを印刷するには:Javaの8で

public static int[] getRandomInts(long seed, int amount, int min, int max) { 
    Random rand = new Random(seed); 
    int[] nums = new int[amount]; 
    for (int i = 0; i < amount; i++) { 
     nums[i] = rand.nextInt(max - min) + min; 
    } 
    return nums; 
} 

Randomクラスが IntStreamを返す代わり ints方法があります。

関連する問題