Re: [問題] 隨機亂數問題請教
※ 引述《rex921 (小雷)》之銘言:
: int f1,f2,x[5],f3;
: for(f1=0;f1<=4;f1++){
: x[f1]=f1;
: }
x[] 的內容是 {0, 1, 2, 3, 4}
: 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];
: }
: }
: 紅色那段,看不懂他的用意
: 上來請教@@
(1) 在五個數裡面,任挑一個0至4的數字f2,並輸出x[f2]
假如f2是1, 那就輸出x[1]=1
(2) 從f2開始,把x[f2]至x[4]的數字都往前移一個位置
如果f2是1,就是f[1]=f[2],f[2]=f[3],f[3]=f[4]
結果x就會變成{0, 2, 3, 4, 4}, 這個步驟就把已經挑出的1給移除掉
(3) 這個時候f1會遞增成1,f2就變成一個0至3的隨機數字,並輸入x[f2]
(4) 同上述的(2),把x[f2]=x[f2+1], x[f2+1]=x[f2+2] ...
因此,每次挑過的數字就會被蓋掉,而挑選的範圍也會越來越小
最後所有的數字都挑完,這個程式也就結束了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.117.171.46
※ 編輯: james732 來自: 140.117.171.46 (10/31 17:45)
推
10/31 17:47, , 1F
10/31 17:47, 1F
※ 編輯: james732 來自: 140.117.171.46 (10/31 17:56)
推
10/31 18:17, , 2F
10/31 18:17, 2F
推
10/31 18:19, , 3F
10/31 18:19, 3F
→
10/31 18:24, , 4F
10/31 18:24, 4F
討論串 (同標題文章)