查找给定均值的值

时间:2016-01-05 07:31:39

标签: python

我对python很新,并尝试生成一定数量的数字(例如3个数字),这意味着等于给定的值。 例如,让我们说我试图获得3个数字的不同列表,这些数字的均值等于10,这将使这些列表成为例如: (5,10,15)& (0,0,30)& (5,5,20)。

当我修复列表中的元素数量时,我知道我只能使用总和,但即便如此,我也无法找到如何以pythonic方式使用相同的总和来计算不同的列表。

编辑: 我想生成一个已定义数量的列表,而不是所有可能的组合,现在我想到它,它应该只是整数

1 个答案:

答案 0 :(得分:0)

你走了。 这仅适用于没有重复的正整数

def make_lists(mean):
    'without duplicates'
    for i in range(0, mean+1):
        for j in range(i, mean+1): 
            k = mean * 3 - i - j

            assert (k+i+j) / 3.0 == float(mean), ((k+i+j) / 3.0) #just testing
            yield (i,j, k)



if __name__ == '__main__':
    print( list(make_lists(10)))