【发布时间】:2015-06-25 12:53:07
【问题描述】:
我遇到了一个简单的随机数生成算法,它产生一系列数字,如下所示:
for (int i = 0; i < MAX; i++)
if (rand.nextInt(100) >= 100 - probability) // probability is between 0 and 100
randomNumbersList.add(i);
我想知道是否有一种方法可以在不遍历 0 到 MAX 之间的每个数字的情况下获得统计上等效的结果。
【问题讨论】:
-
首先,这只是在
probablity和 100 之间创建一个(可能为空)“随机”数字列表。其次,您并没有真正迭代0和MAX之间的每个数字,代码尝试MAX次来生成一个数字。如果你想做某事 X 次,就必须在某处有一个循环。 -
@Buurman 不正确 - 它创建了一个在 0 和 MAX 之间严格递增的整数的列表,最多为 MAX 个,其中列表的平均长度由 MAX*(probability/100.0) 给出
-
哎呀,对不起,你是对的@tucuxi。我错过了它将
i添加到列表中。谢谢指正。