Re: [問題] 關於取亂數值卻又不重複的功能?已回收
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 4 篇):