Java -100 到 100 之间的随机数

标签 java math utilities

我创建了这个程序来打印 -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() 生成一个介于 01 之间的值。然后将该值乘以 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/

相关文章:

java - 如何将 map 转换为 url 查询字符串?

java - 如何将NameValuePair传递给android中的另一个 Activity ?

java - 在静态中声明辅助类方法的原因是什么

python - 为什么 scipy.special.comb 和 math.comb 之间存在差异?

python - 如何计算一组线和一个点之间的(最小)距离?

linux - 如何区分 2 个目录中的所有文件并将其重定向到其他文件

c# - log4net 日志记录还有哪些其他替代方案?

java - 获取 ID 列表的更好方法

java - jbutton 在启动时不可见

math - 英特尔MKL与AMD Math Core库