Problem 1517. Put m balls into n boxes (again)
1 1 1
1 1 2
1 2 2
2 2 2
The columns stand for a ball, the number stands for a box, and the row stands for a case.
Now we count the number of balls in each boxes.
so we get
3 0
2 1
1 2
0 3
the 1-th row stand for the 1-th case,3 balls are put into the first boxes,the others is empty the 2-th row stand for the 2-th case,2 balls are put into the first boxes,1 balls is put into the second boxes
You should write a function, input m and n, m stand for the number of balls ,n stand for the number of boxes,output all the cases.
Example
If m = 3,n = 4, you should output
3 0 0 0
2 1 0 0
2 0 1 0
2 0 0 1
1 2 0 0
1 1 1 0
1 1 0 1
1 0 2 0
1 0 1 1
1 0 0 2
0 3 0 0
0 2 1 0
0 2 0 1
0 1 2 0
0 1 1 1
0 1 0 2
0 0 3 0
0 0 2 1
0 0 1 2
0 0 0 3
Solution Stats
Problem Comments
-
2 Comments
Piotr Lesniewski
on 12 Jul 2019
I'm not sure what is the point of eliminating 'ifs'? At any rate they can be easily replaced by e.g. 'while' loops, so in my opinion you should either eliminate both of them or none.
Rafael S.T. Vieira
on 17 Jul 2020
Again, the best way to generate such a sequence is using depth-first search or recursion. By prohibiting the usage of IFs, all solutions are inefficient (because we can't cut the tree, and are forced to follow all branches).
Solution Comments
Show commentsProblem Recent Solvers62
Suggested Problems
-
3288 Solvers
-
2026 Solvers
-
Is my wife right? Now with even more wrong husband
1322 Solvers
-
Calculate the Number of Sign Changes in a Row Vector (No Element Is Zero)
718 Solvers
-
1203 Solvers
More from this Author17
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!