我必须生成一个随机数列表,并且它们必须具有给定的平均差异。例如,给定的平均差为 10,因此这些数字很好:1 3 5 9 15 51
. 我所做的是将给定的平均差乘以 2 并加 1。像这样:
while (i <= 50000)
{
i += Math.random() * givenAverageDiff * 2 + 1;
list.add(i);
}
但我从来没有得到5000或更多。事实上,它总是 4,850 或更少。为什么?假设givenAverageDiff
是10。我的错误是什么?我该如何解决?
用 C 或 PHP 实现 PS 对我也有好处。