我创建了这个程序来打印 -100 到 100 之间的数字,但我想知道这是否是正确的方法,还是必须在限制(预先指定)a 和 b 之间完成?
public class RandomNumber {
public static void main (String [] args){
for (int i = 1; i <= 10 ; i++)
{
int Random = (int)(Math.random()*-100);
System.out.println(Random);
}
for (int i = 1; i <= 10 ; i++)
{
int Random1 = (int)(Math.random()*100);
System.out.println(Random1);
}
}
}
最佳答案
如果您想生成 -100 到 100 之间的数字:
public class RandomNumber {
public static void main (String [] args){
for (int i = 1; i <= 10 ; i++)
{
int Random = (int)(Math.random()*(200 + 1)) - 100;
System.out.println(Random);
}
}
}
这是有效的,因为 Math.random()
生成一个介于 0
和 1
之间的值。然后将该值乘以 200,然后减去 100。
示例:
((0.75) * (200 + 1)) - 100 = 150 - 100 = 50
<小时/>
如果您想要一个介于 a
(较小)和 b
(较大)之间的数字,请尝试:
int Random = (int)(Math.random() * (b - a + 1)) + a;
示例(a = 30,b = 70
):
Random = 0
(0)(70 - 30 + 1) + 30 = 0 + 30 = 30
Random = 0.5
(0.5)(70 - 30 + 1) + 30 = 20 + 30 = 50
Random = 1
(0.999999)(70 - 30 + 1) + 30 = 40 + 30 = 70
关于Java -100 到 100 之间的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22520315/