用Excel和y随机生成x个整数

我指的是使用=RAND()生成随机x数字的这篇文章 ,但是它会照顾每个数字,包括那些带有十进制的数字。 我只想产生正整数 (例如1,3,50),而不是那些有十进制的。

例如,为了清楚起见,我想生成:

50个随机正整数,总和为1000

PS :如果你发现Excel解决scheme冗余的这个问题,让我知道,我会closures这个。

我提供了一个解决scheme,它具有比我最初设想的更好的统计特性:

估计每个数字的上限是平均值的两倍。 在你的情况下,平均值是20(1000/50),所以上限是39,因为下限是1。

  1. 使用生成50个浮点数

    =RAND() * 38 + 1

  2. 总结你得到的总数,称之为s

  3. 重新缩放每个数字乘以1000 / s并以正常方式将结果四舍五入 。 (使用ROUND 。)

  4. 总结一下。 叫它t

  5. 如果t小于1000,则添加1000 - t到最小的数字。 如果大于1000,则从最大的数字中减去t - 1000

这应该是大致均匀分布,并有一个很好的意思。 您可以通过一些统计testing来testing结果的随机性,以判断它是否符合您的要求。 我的直觉告诉我,它不会Rand()本身更糟糕。