查看單個文章
舊 2007-12-14, 08:20 PM   #2 (permalink)
mini
管理版主
 
mini 的頭像
榮譽勳章
UID - 4144
在線等級: 級別:96 | 在線時長:9694小時 | 升級還需:103小時級別:96 | 在線時長:9694小時 | 升級還需:103小時級別:96 | 在線時長:9694小時 | 升級還需:103小時級別:96 | 在線時長:9694小時 | 升級還需:103小時級別:96 | 在線時長:9694小時 | 升級還需:103小時級別:96 | 在線時長:9694小時 | 升級還需:103小時
註冊日期: 2002-12-07
文章: 13261
精華: 0
現金: 26261 金幣
資產: 3024071 金幣
預設

對 C/C++ 而言

srand 是類似 "洗牌" 的動作 (攪亂後重排 放入 亂數表列中)
srand 函式 有個 引數 "參考值"
簡單講就是告訴 "如何攪亂"

當程式第一次執行 rand 時
得到的值是
亂數表列 的第一個值
之後以此類推
(當程式第二次執行 rand 時,得到的值是 亂數表列 的第二個值...)

如果程式未設計 "一開始用 srand 洗牌"
就相當於
一副新的未拆封的撲克牌
所以其順序是一定的(照理說 全世界新的撲克牌 其開封時 疊放順序都是一樣的)

也就是
每次啟動程式執行時
亂數表都是一樣的

亂數表一樣
執行到 rand
得到的值都會是固定變化的 (可預期)

如果 srand 加上固定的 引數 的話
是否也是會得到 可預期 的值呢?
答案當然是 "Yes"
mini 目前離線  
送花文章: 2001, 收花文章: 7962 篇, 收花: 26757 次
回覆時引用此帖