2016-01-05 32 views
0

我對python很陌生,試圖生成一個定義數目的數字(例如3個數字),這意味着它等於一個給定的值。 例如,假設我試圖獲得3個數字的不同列表,其平均值等於10,這將使這些列表例如: (5,10,15)&(0,0,30)&(5, 5,20)。查找給定數值的值

由於我固定列表中的元素數量,我知道我只能使用總和,但即使如此,我無法找到如何用pythonic方式計算具有相同總和的不同列表。

編輯: 我要生成一個定義編號列表,而不是所有可能的組合,現在,我想它,它應該是唯一的整數

+0

正整數,你想生成任何一個列表或一個大小爲與平均值可以說,S中所有可能的列表? – bashrc

+1

的問題不清楚。 (40,-4,-6)是否有效?你接受小數還是隻接受整數?在這些最後的情況下有無限的組合。 –

回答

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)))