[問題] 隨機亂數問題請教

看板C_and_CPP作者 (小雷)時間15年前 (2010/10/31 17:26), 編輯推噓0(005)
留言5則, 3人參與, 最新討論串1/3 (看更多)
平台:VS2005 我在網路上找到一段產生隨機不重複的程式碼: 我改為產生0~4 共五個隨機值 int f1,f2,x[5],f3; for(f1=0;f1<=4;f1++){ x[f1]=f1; } for(f1=0;f1<=4;f1++){ f2=rand()%(5-f1); cout <<x[f2]<<"\t"; for(f3=f2;f3<=4;f3++){ x[f3]=x[f3+1]; } } 紅色那段,看不懂他的用意 上來請教@@ -- 活在我不懂的道理 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.64.102.55 ※ 編輯: rex921 來自: 203.64.102.55 (10/31 17:28)

10/31 17:30, , 1F
我猜是洗牌,但是洗牌有這麼複雜嗎…?'
10/31 17:30, 1F

10/31 17:30, , 2F
亂取一項表示要填到某位置,他想把該項填到x[4],要把其他已經
10/31 17:30, 2F

10/31 17:30, , 3F
填入的數字移開.
10/31 17:30, 3F
加了紅色那串不會產生相同的隨機值,拿掉紅色那串,就會出現 是我百思不解的地方 我資質駑鈍吧 囧 ※ 編輯: rex921 來自: 203.64.102.55 (10/31 17:36)

10/31 17:41, , 4F
譬如選到的事x[1]就把x[2~4]都往前移,這樣就不會
10/31 17:41, 4F

10/31 17:41, , 5F
選到重複的了
10/31 17:41, 5F
文章代碼(AID): #1CpJPU-g (C_and_CPP)
文章代碼(AID): #1CpJPU-g (C_and_CPP)