java计算随机数出现的问题

Java用Random创建了10个范围为0-101的随机数,为什么计算上一次也到不了1000

源代码:

java import java.util.Random; public class LuckyPointTest { public static void main(String[] args) { Random r = new Random(); //变量定义 boolean statment = true; int arry[] = new int[100]; int countState = 0; int Maxnum = 0; while (statment) { //创建10个0-101的随机数 for (int count = 0; count <= 9; count++) { int number = r.nextInt(101); arry[count] = number; } //数组遍历求和 for (int i = 0; i < arry.length; i++) { Maxnum = arry[i] + Maxnum; } //计算次数统计 countState++; //结果判断 if (Maxnum == 1000) { statment = false; } //结果输出 System.out.println("这是第" + countState + "次运算"); System.out.println("当前最大值为:" + Maxnum); //结果归零 Maxnum = 0; } } }>

代码格式好乱,有没有可能是你maxnum =0放错位置了

望采纳!!
Maxnum=0 放在 while 循环外面,循环结束再调用 Maxnum=0,另外,由于你使用的是随机数,所以不能用 Maxnum==1000,你需要判断 Maxnum>=1000 才会成立。
😅随机数不可能正好能累加到 1000 这个整数的。

Java的Random类使用线性同余发生器(LCG)来生成随机数,它的取值范围为0 - 2^32,因此Random创建的10个随机数的最大和不可能达到1000,它最多可以达到4294967296/2^32,但是由于这些数字是随机生成的,所以有可能把它们加到1000或者接近1000,只要你等待的时间足够久,就会有机会得到1000。

你这个倒是有可能会满足,但是概率太低了(1/10^20)。