以下是一种生成150个数,范围在20至85之间,且平均值为48.6的方法:

  1. 首先,计算出150个数的总和:150 × 48.6 = 7290。

  2. 接着,将这个总和分配到150个随机数中。为了保证每个数都在20至85之间,可以采用以下方法:

  • 随机生成150个数,范围在0至1之间,记为r1, r2, ..., r150。
  • 对这150个数进行归一化处理,即将它们乘以65,再加上20,得到150个数,范围在20至85之间,记为x1, x2, ..., x150。
  • 计算这150个数的总和sum(x1, x2, ..., x150),如果与上面的总和不一致,则进行调整。具体来说,如果sum小于7290,则随机选择一些数,将它们加上一个较小的值;如果sum大于7290,则随机选择一些数,将它们减去一个较小的值。
  1. 最后,将这150个数乱序输出即可。

以下是Python代码实现:

import random

# 生成150个随机数,范围在0至1之间
r = [random.random() for i in range(150)]

# 归一化处理,生成150个随机数,范围在20至85之间
x = [int(65 * ri + 20) for ri in r]

# 计算总和
sum_x = sum(x)

# 调整总和,使之等于150 × 48.6 = 7290
if sum_x < 7290:
    # 随机选择一些数,将它们加上一个较小的值
    idx = random.sample(range(150), 7290 - sum_x)
    for i in idx:
        x[i] += 1
elif sum_x > 7290:
    # 随机选择一些数,将它们减去一个较小的值
    idx = random.sample(range(150), sum_x - 7290)
    for i in idx:
        x[i] -= 1

# 乱序输出
random.shuffle(x)
print(x)
生成平均值为48.6的150个随机数(范围20-85)

原文地址: https://www.cveoy.top/t/topic/lfc4 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录