Re: [問題] 關於取亂數值卻又不重複的功能?已回收

看板MATLAB作者 (幹嘛要暱稱)時間13年前 (2010/10/13 13:31), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/4 (看更多)
※ 引述《CCWck (幹嘛要暱稱)》之銘言: : ※ 引述《rhythmtmac (節奏T-Mac)》之銘言: : : 小弟是第一次上板請教問題 : : 問題可能較膚淺但是極想解惑 還請各位先進指教~ 感恩!!! >_< : : 就是有關以下一列簡單的程式碼: : : ceil(42*rand(1,6)) : : 是取六個亂數然後用 ceil指令將小數值無條件進位 : : 但是如此程式取出的六個亂數中... 卻還是極容易出現重複的數值..! : : 所以若想要令六個亂數不會重覆的最簡單作法 : : 不知有沒有先進有好的辦法呢? : : 若是沒有辦法太簡單也OK的! 就算改進後的程式或是方法較麻煩或較多行 : : 小弟也願意學習吸收 ~ !! : : 還請大家指教了 >_< 感恩大家!!!! <(_ _)> : 你只是從42個數字中取六個相異數吧? : a=randperm(42); % 產生1~42亂排的矩陣 : b=a(1:6); %取矩陣的前六個元素出來 a=ceil(42*rand); %給一個亂數 while length(a)<6 %如果長度小於6 temp=ceil(42*rand); %再給一個新的亂數 if ~ismember(temp,a) %如果這個新亂數 沒有重複 a=[a temp]; % 就把它加到原本的亂數矩陣中 end end -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.109.134.47
文章代碼(AID): #1CjKH3do (MATLAB)
討論串 (同標題文章)
文章代碼(AID): #1CjKH3do (MATLAB)