Ask Your Question
1

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

asked 2017-02-11 11:26:08 +0100

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.

edit retag flag offensive close merge delete

Comments

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

kcrisman gravatar imagekcrisman ( 2017-02-11 14:28:41 +0100 )edit

2 Answers

Sort by ยป oldest newest most voted
3

answered 2017-02-13 00:05:59 +0100

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]]
edit flag offensive delete link more
2

answered 2017-02-11 14:06:05 +0100

tmonteil gravatar image

updated 2017-02-11 14:07:00 +0100

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

edit flag offensive delete link more

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: 2017-02-11 10:30:54 +0100

Seen: 821 times

Last updated: Feb 13 '17