Cla*_*ith 5 random algorithm numbers
我期待生成一个数字序列,其中每个数字在70到100之间,序列中将有x个数字,它将给出y的平均值.这个算法会是什么样的?
我认为他们不可能均匀分布在70到100之间并且同时具有给定的平均值。
您可以做的是生成具有给定平均值的随机数,然后将它们缩放以适合 [70, 100] (但它们不会均匀分布在那里)。
生成随机数 [0..1(
计算他们的平均值
将它们全部相乘以匹配所需的平均值
如果其中任何一个不适合 [70, 100],则通过将它们的距离减小y相同的因子来再次缩放所有它们(这不会改变平均值)。x[i] = y + (x[i] - y)*scale
您最终会得到范围 [70, 100( 中的数字,但它们将均匀分布在以 y 为中心的不同(但重叠)区间内。此外,此方法仅适用于实数/浮点数字。如果你想要整数,你就会面临一个组合问题。