数字分组 matlab lingo

来源:百度知道 编辑:UC知道 时间:2024/06/24 17:37:05
已知一系列数字比如1到30,把这30个数任意选出4个出来,这个程序我知道
c=combntns([1:30],4) 但是我有限制条件 选出来的众多组当中 不能存在2个相同或者3个相同。问最多能分多少组。
请问高手 用matlab编程或者 用lingo!
请大家不要答非所问!!!!!!!!!!!!!

>> e=nchoosek([4 1 1 2 4],2)
%当然用combntns也一样。nchoosek仅适用与n<=15;

e =

4 1
4 1
4 2
4 4
1 1
1 2
1 4
1 2
1 4
2 4

>> sort(e,2) %把每一行由小到大排列,当然如果你需要[1 4][4 1]不同的话,也可以不用调用这个函数。

ans =

1 4
1 4
2 4
4 4
1 1
1 2
1 4
1 2
1 4
2 4

>> unique(ans,'rows') %每行作为一个单元,去掉重复的行。

ans =

1 1
1 2
1 4
2 4
4 4

>>