產生 1-52 的亂數,所以,先來一個 0..51 陣列 (這裏我叫做 x ),當中 x[0]=1, x[1]=2, ... x[i]=i+1 。
然後我們不斷的交換兩個數:
1. 隨機抽出兩個數 a 和 b ,當中 a 和 b 都是 0-51 的數。
2. 把 x[a] 和 x[b] 交換。
要做多少次就看你喜歡了 ^_^ 次數越多,數字就會越亂 XD
參考程序:
然後我們不斷的交換兩個數:
1. 隨機抽出兩個數 a 和 b ,當中 a 和 b 都是 0-51 的數。
2. 把 x[a] 和 x[b] 交換。
要做多少次就看你喜歡了 ^_^ 次數越多,數字就會越亂 XD
參考程序:
| 1 | #include |
| 2 | #include |
| 3 | #include |
| 4 | int main() { |
| 5 | int x[52],i,a,b,t; |
| 6 | srand(time(NULL)); |
| 7 | for(i=0;i<52;++i) x[i]=i+1; |
| 8 | for(i=0;i<1000;++i) { |
| 9 | a=rand()%52; |
| 10 | b=rand()%52; |
| 11 | printf( | "%d %d\n",a,b);
| 12 | t=x[a]; |
| 13 | x[a]=x[b]; |
| 14 | x[b]=t; |
| 15 | } |
| 16 | for(i=0;i<52;++i) { |
| 17 | printf( | "%d ",x[i]);
| 18 | if(i%10==9) printf("\n"); |
| 19 | } |
| 20 | } |
文章標籤
全站熱搜

c++嗎
大一修過就沒再碰了....
ㄏ~我現在是天天靠這個吃飯的呢…