Re: [問題] 隨機亂數問題請教
原文恕刪..
我覺得可能看底下的 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
→
10/31 17:58, , 1F
10/31 17:58, 1F
※ 編輯: tropical72 來自: 180.177.76.142 (10/31 17:59)
推
10/31 18:06, , 2F
10/31 18:06, 2F
討論串 (同標題文章)
完整討論串 (本文為第 3 之 3 篇):
問題
0
5