亂數的設定與使用

◎ 概念:亂數(random number) 是由電腦隨機產生的一個不確定數字,透過亂數使用,我們可以讓電腦模擬擲骰子、發撲克牌等動作。

◎ 亂數種子:通常我們在使用亂數之前,會先以系統時間設定亂數種子。所謂亂數種子可以視為是產生亂數的一種規律,如果不加以事先設定,則每次執行程式時產生的亂數規律都會一模一樣;為了避免亂數產生順序被使用者完全掌控,因此我們常藉助系統時間的變動性來作為亂數種子,這樣每次執行程式時會因為時間不同,其產生的亂數規律也不一樣,這樣就能讓程式執行時的趣味性大增。

◎ 亂數設定與使用:

(1) 在程式前端 (主程式main( )之前) 加入含括標頭檔指令
#include <time.h>

(2) 在主程式前端 (通常在變數設定完之後) 加入設定亂數種子的函數 srand(),其內容如下:
srand ((unsigned) time (NULL));

(3) 在程式中如果要使用亂數,則可以利用函數 rand() 來設定其範圍,其用法是透過餘數除法『%』來設定其範圍。如果用『rand() % n』來產生亂數,則亂數範圍是從 0 到 n-1 的某數。請參考下例:
(例1) 設學生成績(0~100)          →  x = rand() % 101;
(例2) 模擬擲骰子(1~6)             →  x = rand() % 6 +1;
(例3) 產生2, 4, 6, 8 四個數之1   →  x = (rand() % 4 +1) * 2;