我想知道如何在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)
答案 0 :(得分:4)
返回下一个伪随机数,从中均匀分布的int值 这个随机数发生器的序列。一般合同 nextInt是伪随机生成的一个int值 回。所有2 32 可能的int值都是用 (大约)相等的概率。
因此,如果您使用Random.nextInt()
,则会返回Integer.MIN_VALUE
和Integer.MAX_VALUE
之间的值
答案 1 :(得分:3)
答案 2 :(得分:1)
来自java.util.Random的nextInt()的Java文档:
All 2^32 possible int values are produced with (approximately) equal probability.
您可能想尝试
StartVärde = rand.nextInt();
默认情况下,它会产生正负随机数。