作者soulkidd (浪人台客)
看板MATLAB
标题[讨论] 关於逻辑运算的一个小问题
时间Tue Nov 6 16:06:04 2012
各位好我是自学MATLAB新手,
有个小问题想请教大家。
例如大乐透49取6的程式码如下:
x1 = round(rand*48)+1;
x2 = round(rand*48)+1;
x3 = round(rand*48)+1;
x4 = round(rand*48)+1;
x5 = round(rand*48)+1;
x6 = round(rand*48)+1;
x=[x1 x2 x3 x4 x5 x6];
if(x1~=x2)&(x1~=x3)&(x1~=x4)&(x1~=x5)&(x1~=x6)&(x2~=x3)&(x2~=x4)&(x2~=x5)&(x2~=x6)&
(x3~=x4)&(x3~=x5)&(x3~=x6)&(x4~=x5)&(x4~=x6)&(x5~=x6)
x
end
假如6个乱数产生的号码真的有重复,
那是否会直接跳出if而没有东西产生呢?
该如何让它重run至产生6个不重复数字为止?
抑或是MATLAB本来就会直接重新选乱数直到if式成立为止?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.0.109
1F:推 CBET:请利用 while 回圈、randi、length、和 unique 11/06 16:34
2F:→ mp19990920:不用回圈啦! 用 X=randperm(49); x = X(1:6);即可 11/06 23:59
3F:推 CBET:我耍笨了... =口=" 11/07 00:23