0

Integer.MIN_VALUE と Integer.MAX_VALUE の間のランダムな整数を取得する方法を知りたいです。私はこれを試しました:

int min = Integer.MIN_VALUE;
int max = Integer.MAX_VALUE;

Random rand = new Random();
StartVärde =  rand.nextInt(max - min + 1) + min;

java.util.Random をインポートしたことに注意してください。「StartVärde」は、私が作成した単なる変数です。上記のコードでは、次のエラー メッセージが表示されます。

Exception in thread "main" java.lang.IllegalArgumentException: n must be positive
at java.util.Random.nextInt(Random.java:265)
at Räknare.<init>(Räknare.java:28)
at Räknare_Main.main(Räknare_Main.java:5)
4

3 に答える 3

4

のjavadocからRandom.nextInt()

この乱数ジェネレーターのシーケンスから次の疑似乱数の均一に分散された int 値を返します。nextInt の一般契約では、1 つの int 値が疑似乱数で生成されて返されます。2 32 個の可能な int 値はすべて (ほぼ) 等しい確率で生成されます。

したがって、is を使用すると、 ~Random.nextInt()の間の値が返されます。Integer.MIN_VALUEInteger.MAX_VALUE

于 2013-06-02T19:33:41.843 に答える
3

代わりに簡単に使用できますrand.nextInt()int32 ビットのランダムを返します。Java ではint符号付きと解釈されるため、正と負の両方の値が得られます。

より詳しい情報 :

于 2013-06-02T19:33:11.997 に答える
1

java.util.RandomのnextInt()の Java ドキュメントから:

All 2^32 possible int values are produced with (approximately) equal probability.

あなたは試してみたいかもしれません

StartVärde =  rand.nextInt();

デフォルトでは、正と負の乱数が生成されます。

于 2013-06-02T19:33:02.260 に答える