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
-
Select every other element of a vector
32971 Solvers
-
Arrange Vector in descending order
11272 Solvers
-
260 Solvers
-
Construct an index vector from two input vectors in vectorized fashion
390 Solvers
-
Remove element(s) from cell array
1534 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!