作者tropical72 (藍影)
看板C_and_CPP
標題Re: [問題] 隨機亂數問題請教
時間Sun Oct 31 17:57:41 2010
原文恕刪..
我覺得可能看底下的 code 你會比較清楚一些..
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX 1024
#define N 5
int main()
{
srand(time(NULL));
int i, pos1, pos2, tmp;
int Poker[MAX] = {0};
// 0- MAX-1 之撲克牌
int Pick[N] = {0};
// 從0-MAX-1, 挑出N個不重複數字
// 1. 產生 poker, 0~MAX-1
for(i=0; i<MAX; i++) Poker[i]=i;
// 2. 開始對 poker 洗牌, 洗 MAX 次
for(i=0; i<MAX; i++){
pos1 = rand() % MAX;
// 挑到第pos1張
pos2 = rand() % MAX;
// 挑到第pos2張
// 將第pos1張與pos2張對換, 共換了 MAX 次
tmp = Poker[pos1];
Poker[pos1] = Poker[pos2];
Poker[pos2] = tmp;
}
// 3. 最後從MAX張poker中,發前N張牌出來
for(i=0; i<N; i++) Pick[i]= Poker[i];
// 4. 看有哪 N 張牌
for(i=0; i<N; i++) printf("%d ", Pick[i]);
return 0;
}
以上
請參閱..
--
YouLoveMe() ? LetItBe() : LetMeFree();
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 180.177.76.142
→ tropical72:= = 上一帖有解答了.. 10/31 17:58
※ 編輯: tropical72 來自: 180.177.76.142 (10/31 17:59)
推 rex921:還是謝謝你@@ 10/31 18:06