如何生成总和固定的多个随机数

如何生成总和固定的多个随机数

例如: 需要生成10个随机数 这10个随机数的总和为1000

对此场景首先想到的方法是 先在0-MAX(初始MAX=1000)间random一个数,然后用总和减去这个数,得到新的最大值,再在0到MAX之间random一个数,依此类推,但是这样产生的10个数,最后几个数总和非常低,甚至都是0;分析得知,第一个数的随机的均值是500,第二个数均值是250,…,所以这种方法随机对各个数来说均值不等.

这样做通常无法满足要求. 那么我们可以这样做:

在0~1000之间随机9个数 将其排序 这9个数将0~1000分为10个区间 此时取每个区间的长度就是所要的10个随机数.

One thought on “如何生成总和固定的多个随机数

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注