14.15 每次執行程序, rand() 都返回相同順序的數字。

你可以調用 srand() 來初始化模擬隨機數發生器的種子, 用的值可以是 真正隨機數或至少是個變量, 例如當前時間。這兒有個例子:
    #include <stdlib.h>
    #include <time.h>

    srand((unsigned int)time((time_t *)NULL));
不幸的是, 這個代碼並不完美---其中, time() 返回的 time_t 可能是 浮點值, 轉換到無符號整數時有可能上溢, 這造成不可移植。 參見問題: 19.36

還要注意到, 在一個程序執行中多次調用 srand() 並不見得有幫助; 特別是不要為了試圖取得 ``真隨機數" 而在每次調用 rand() 前都調用  srand()。

參考資料: [K&R2, Sec. 7.8.7 p. 168]; [ISO, Sec. 7.10.2.2]; [H&S, Sec. 17.7 p. 393]。

翻譯朱群英、孫雲, LaTeX2HTML 編譯 朱群英 (2005-06-23)