對 C/C++ 而言
srand 是類似 "洗牌" 的動作 (攪亂後重排 放入 亂數表列中)
srand 函式 有個 引數 "參考值"
簡單講就是告訴 "如何攪亂"
當程式第一次執行 rand 時
得到的值是
亂數表列 的第一個值
之後以此類推
(當程式第二次執行 rand 時,得到的值是 亂數表列 的第二個值...)
如果程式未設計 "一開始用 srand 洗牌"
就相當於
一副新的未拆封的撲克牌
所以其順序是一定的(照理說 全世界新的撲克牌 其開封時 疊放順序都是一樣的)
也就是
每次啟動程式執行時
亂數表都是一樣的
亂數表一樣
執行到 rand
得到的值都會是固定變化的 (可預期)
如果 srand 加上固定的 引數 的話
是否也是會得到 可預期 的值呢?
答案當然是 "Yes"
|