我正在尋找一種算法,找到所有的方式來表示整數n作爲m(非負)整數的總和。我特別感興趣的是m = 6和n⩽20。找到所有可能性的最快方式是什麼(使用計算機,而不是手工)。如果可能的話,我只想看看六個整數的組合,順序不相關(即[1,2,0,0,0,0]和[2,1,0,0,0,0 ]計爲1個組合)。如何找到所有的方法來獲得一個整數n爲m個整數的總和(無序)?
最簡單的方法是簡單地嘗試使用小於或等於20的6個整數進行所有置換,並且只添加總和爲20的結果(如果我們不想查看順序,則刪除雙精度) )。這似乎要花很長的時間,因爲20^6的可能性需要很長時間才能檢查。
什麼是更有效的方法來解決這個問題?
提示:避免重複可以很容易,如果你在排序順序生成它們來完成。如果你有m個數字來填充,以便他們總計爲n並且數字是遞增的,那麼第一個數字有什麼可能性? –