作者sunev (Veritas)
看板MATLAB
标题Re: [问题] 如何快速产生 6! * 3!的所有组合?
时间Mon Dec 4 01:10:12 2006
※ 引述《zxvc (zxvc)》之铭言:
: ※ 引述《zxvc (zxvc)》之铭言:
: : 修正版:
: : m=6;
: : n=3;
: : a=perms(1:m);
: : b=perms((m+1):(m+n));
: : br=size(b,1);
: : s1=repmat(['a repmat(b('],br,1);
: : s2=num2str((1:br)');
: : s3=repmat([',:),' num2str(size(a,1)) ',1);'],br,1);
: : s=[s1 s2 s3]';
: : eval(['[' s(:)' ']']);
: 精简版:
: m=6;
: n=3;
: a=perms(1:m);
: b=perms((m+1):(m+n));
: s=num2str((1:size(b,1))',['a repmat(b(%d,:),' num2str(size(a,1)) ',1);'])';
: eval(['[' s(:)' ']']);
: 抱歉,这招太好用了,不得不贴出来。
[o,p]=meshgrid(1:length(b),1:length(a));
u=[a(p(:),:) b(o(:),:)];
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.58.22.41
1F:推 zxvc:赞 12/04 07:27
2F:推 Gwaewluin:超棒!<O> 12/04 11:42
3F:推 enigmachen:真神 幸好写程式不是按字数收费,不然原po就亏死了 12/04 11:50
4F:推 kk123:( ̄▽ ̄#)﹏﹏ 大家都好厉害 12/04 12:24