Loading [MathJax]/jax/output/HTML-CSS/jax.js
Ask Your Question
1

Find all non-negative integer solutions of a+b+c+d+e=8 in Sagemath

asked 8 years ago

davis gravatar image

Find all non-negative integer a, b, c,d, e such that

a+b+c+d+e=8

Is there any method for this? I have no idea. I can just fix the limit.

Preview: (hide)

Comments

See also http://math.stackexchange.com/questio... where this has several answers.

kcrisman gravatar imagekcrisman ( 8 years ago )

2 Answers

Sort by » oldest newest most voted
3

answered 8 years ago

If the order of a, b, etc. matters:

sage: IntegerVectors(8, 5)
Integer vectors of length 5 that sum to 8
sage: list(IntegerVectors(8, 5))
[[8, 0, 0, 0, 0],
 [7, 1, 0, 0, 0],
 [7, 0, 1, 0, 0],
 [7, 0, 0, 1, 0],
 [7, 0, 0, 0, 1],
 [6, 2, 0, 0, 0],
 [6, 1, 1, 0, 0],
 [6, 1, 0, 1, 0],
 [6, 1, 0, 0, 1],
 ...

If you don't care about the order:

sage: Partitions(8, max_length=5)
Partitions of the integer 8 satisfying constraints max_length=5
sage: list(Partitions(8, max_length=5))
[[8],
 [7, 1],
 [6, 2],
 [6, 1, 1],
 [5, 3],
 [5, 2, 1],
 [5, 1, 1, 1],
 [4, 4],
 [4, 3, 1],
 [4, 2, 2],
 [4, 2, 1, 1],
 [4, 1, 1, 1, 1],
 [3, 3, 2],
 [3, 3, 1, 1],
 [3, 2, 2, 1],
 [3, 2, 1, 1, 1],
 [2, 2, 2, 2],
 [2, 2, 2, 1, 1]]
Preview: (hide)
link
2

answered 8 years ago

tmonteil gravatar image

updated 8 years ago

While this particular example could be easily done without Sage, you can have a look at Mixed Integer Linear Programming as a general method, see http://doc.sagemath.org/html/en/refer... and http://doc.sagemath.org/html/en/thema...

Preview: (hide)
link

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 8 years ago

Seen: 853 times

Last updated: Feb 13 '17