比率为1:2的随机数

时间:2008-10-27 14:16:27

标签: algorithm math random numbers distribution

我必须生成两组随机矩阵 每个包含3位数字,范围从2到10

像那样

矩阵1:994,878,129,121

矩阵2:272,794,378,212

两个矩阵中的数字必须大于100且小于999

BUT

两个矩阵的均值必须是1:2或2:3的比例,这是用户输入的约束

我的数学技能有限,所以任何想法我怎么做到这一点?

2 个答案:

答案 0 :(得分:2)

为此,您必须知道每个列表中有多少个数字。我假设你的例子中每个都有四个数字。

  1. 用四个随机数填充第一个列表。
  2. 计算第一个列表的平均值。
  3. 将平均值乘以2或3/2,无论用户输入哪个。这是第二个列表的必需平均值。
  4. 乘以4.这是第二个列表的必需总数。
  5. 生成3个随机数。
  6. 从步骤4中的总计中减去步骤5中三个数字的总和。这是第二个列表的第四个数字。
  7. 如果步骤6中的数字不在正确的范围内,请从步骤5开始。

请注意,第二个列表中的最后一个数字并非真正随机,因为它基于列表中的其他值。

答案 1 :(得分:1)

你有一组随机数,s1。

s1= [ random.randint(100,999) for i in range(n) ]

对于其他一些集合,s2,要有不同的意思,它只需要有不同的范围。您可以从不同的范围中随机选择值,也可以过滤随机值以获得不同的范围。

无论你从100到999的范围内选择多少随机数字,平均值总是只有550左右。成为不同值的几率恰好是两侧的正态分布概率。平均值。

对于从相同范围中选择的值,您的平均值不会完全不同。