生成随机数,如果添加等于指定的数字

alm*_*ner 2 java random addition

我正在尝试生成0到100之间的四个随机数,它们将等于100.

我已设法产生结果,但效率不高.我的方法只是在0-100之间循环随机数,然后添加它们,如果它不等于100然后重复该过程,直到它等于100.是否有更有效的方法?

提前致谢

Car*_*cas 6

您可以生成介于1和(100-3)之间的第一个随机数.假设您的第一个随机数是X.您生成的下一个随机数应该在X和(100-2)之间.假设该数字是Y.下一个随机数应该在(X + Y)和(100-1)之间.假设该数字是Z.

现在你有了第四个随机数,即100-XYZ.仔细检查其中的一些,以显示它与您当前的数字生成器具有相同的分布,以检查您的工作.

  • 这**不会**产生相同的分布。 (2认同)

Spa*_*ker 5

随机抽取0到100之间的3个数字而不重复.现在对它们进行升序排序,并将后续数字之间的间隙解释为您首先绘制的数字.使用3个分隔线时,您想要绘制的4个数字有4个间隙.

使用此方法,如果可以,您可以多次使用相同的数字.