combination of integer numbers
2 次查看(过去 30 天)
显示 更早的评论
I need to make distibution of 15 apples among 4 person [a b c d],
each person can have a value betwwen 0-15. and summation always (a+b+c+d=15)
so how can i generate the matrix for all possible combinantion
so i eapect matrix as
a = [1 14 0 0
0 0 0 15
3 6 2 4
...................
...................]
2 个评论
Walter Roberson
2019-11-16
One approach is to ndgrid() all possible combinations, and then check those to find the ones that add up to the right number.
采纳的回答
the cyclist
2019-11-16
p = partitions(15,[1 1 1 1])
5 个评论
the cyclist
2019-11-18
I don't think an easier example was needed, but I can verify that
partitions(4,[1 1 1])
gives the same answer (not necessarily in the same row order).
I'm not sure why you couldn't run the code. Did you do the following?
- go to the link I uploaded
- click on the download button to get the files
- unzip the files
- put the partitions.m file in your path so that you can run it
更多回答(1 个)
Walter Roberson
2019-11-18
[Ag, Bg, Cg, Dg] = ndgrid(0:15);
Eg = [Ag(:), Bg(:), Cg(:), Dg(:)];
mask = sum(Eg,2) == 15;
selected = Eg(mask,:);
a = selected(:,1);
b = selected(:,2);
c = selected(:,3);
d = selected(:,4);
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!