我想创建一个包含7个整数的数组,每个整数都是2到5之间的随机值。这很容易,但我想这样做,所以这些整数的总和必须为20。想法?
答案 0 :(得分:0)
生成6个随机数。
计算这些数字的总和。
如果总和大于19或小于15:重新开始。
第7个数字是20 - 总和
答案 1 :(得分:0)
从七个二进制数组开始。你现在有一个总和14.在数组的一个随机插槽中添加一个六次,注意不要将值溢出到超过五个:
arr = {2, 2, 2, 2, 2, 2, 2}
n = 6
while n > 0:
m = random(7)
if arr[m] < 5:
arr[m]++
n--
答案 2 :(得分:0)
蛮力:继续重新计算,直到你得到答案
import random
def random_sums_to(lower, top, n, sums_to):
a = [random.randint(lower, top) for _ in range(n)]
if sum(a) != sums_to:
return random_sums_to(lower, top, n, sums_to)
return a
print random_sums_to(2, 5, 7, 20)
答案 3 :(得分:0)
如果您需要确保在每个位置获得完全相同的分布,请按以下步骤操作: