我有一個類似於IntegerPartitions
函數的問題,因爲我想列出所有非負整數xi
,使得對於給定的整數列表{c1,c2,...,cn}
和整數n
:如何解決在數學中的所有非負整數xi
x1*c1+x2*c2+...+xn*cn=n
請分享您的想法。非常感謝。
我有一個類似於IntegerPartitions
函數的問題,因爲我想列出所有非負整數xi
,使得對於給定的整數列表{c1,c2,...,cn}
和整數n
:如何解決在數學中的所有非負整數xi
x1*c1+x2*c2+...+xn*cn=n
請分享您的想法。非常感謝。
的發現內置函數FrobeniusSolve
解決了c1,c2,...,cn是正整數(且右手邊不是n)的情況:
In[1]:= FrobeniusSolve[{2, 3, 5, 6}, 13]
Out[1]= {{0, 1, 2, 0}, {1, 0, 1, 1}, {1, 2, 1, 0}, {2, 1, 0, 1}, {2,
3, 0, 0}, {4, 0, 1, 0}, {5, 1, 0, 0}}
這是你需要的情況,還是你需要消極的c1,c2,...,cn也?
太棒了!這就是我想要的。 :) – 2011-02-14 01:47:28
「使用
n = 10;
cList = RandomInteger[{1, 20}, n]
xList = Table[Symbol["x" <> ToString[i]], {i, n}]
S和係數。然後,如果有一組非負xi
解決方案的」構建你的ci
列表S,它將被
Reduce[cList.xList == n && [email protected]@Thread[xList >= 0], xList, Integers]
你是不是說右邊的n也是整數c1,c2,...,cn的確切數目?或者,右側可以不同,比如m? x1 * c1 + x2 * c2 + ... + xn * cn == m – 2011-02-14 01:31:44