How can I find all the permutations of {a, b, c} where a + b + c = n?
{a, b, c}
a + b + c = n
For instance: if n = 3 the permutations I seel are:
n = 3
Permutations[{3, 0, 0}]
Permutations[{2, 1, 0}]
{1, 1, 1}
f[sum_, quant_] := Flatten[Permutations /@ IntegerPartitions[sum, {quant}, Range[0, sum]], 1] f[3, 3] // Column (* {3,0,0} {0,3,0} {0,0,3} {2,1,0} {2,0,1} {1,2,0} {1,0,2} {0,2,1} {0,1,2} {1,1,1} *) f[4, 2] // Column (* {4,0} {0,4} {3,1} {1,3} {2,2} *)
f[sum_, quant_] := FrobeniusSolve[Array[1 &, quant], sum] f[3, 3] (* {{0, 0, 3}, {0, 1, 2}, {0, 2, 1}, {0, 3, 0}, {1, 0, 2}, {1, 1, 1}, {1, 2, 0}, {2, 0, 1}, {2, 1, 0}, {3, 0, 0}} *) f[4, 2] (* {{0, 4}, {1, 3}, {2, 2}, {3, 1}, {4, 0}} *)
ConstantArray[1, quant]
Array[1 &, quant]
ConstantArray
ConstantArray[1, 10^7]; // Timing
Array[1 &, 10^7]; // Timing
Sign up using Google
Sign up using Facebook
Sign up using Stack Exchange
By posting your answer, you agree to the privacy policy and terms of service.
tagged
asked
2 months ago
viewed
134 times
active