大家好,我有这个命令:
for (z = 0; z < utenti.length; z++) {
utenti[z] = rand.nextInt(1000) + 1;
}
在完成1到1000之间的随机数之后,我希望它停止,命令是我程序中的一个功能,但每次我记得它们的数字随机再次出现。有没有办法在第一次之后停止随机生成?
答案 0 :(得分:1)
有没有办法在第一次之后停止随机生成?
是。第一次之后不要执行该代码。例如:
var progress = null
答案 1 :(得分:0)
我不想两次运行这段代码,那么你为什么要两次调用它?
由于这段代码只需执行一次,因此它可能位于错误的位置。它可能属于构造函数或其他东西,具体取决于您的程序结构。
boolean
来跟踪它是否是第一次。这对你来说可能是最简单的选择。除了另一个答案之外,还要注意Random
类的构造函数接受一个种子。如果保持种子相同,则伪随机数的序列将相同。这样可以节省utenti
数组的内存使用量,尤其是对于大型数组。
private long seed;
private void determineSeed() {
long seed = new Random().nextLong();
}
然后使用:
Random rand = new Random(this.seed);
for (int i = 0; i < utenti.length; i++) {
int number = rand.nextInt(1000) + 1);
// Don't save it to an array, do something with number
}
缺点是您无法使用序列中的特定元素(例如,utenti[i]
),您必须按顺序使用随机数。