首先我們要知道,計算機不能產生絕對的隨機數。只能產生偽隨機數。偽就是有規律的意思。偽隨機數就是計算機產生的隨機數是有規律的。
那麼計算機是怎麼產生隨機數的?
當然是通過演算法,這個演算法是有對映關係的,如我放進1,他會出來乙個特定的數
rand_seed=(rand_seed*123+59)%65536;
這是某個系統的隨機數演算法。
我們可以把這個演算法看成是乙個黑盒子,你放進乙個數,就會出來乙個特定的數,並把這個數當做下一次的種子在放進去。
系統實現隨機數是把當前的系統時間放進去,每次都不一樣,所以可以實現。
但如果你每次都放進一樣的種子,生成的隨機數列就是一樣的了。
**
隨機數種子
隨機數 int main 函式rand 是真正的隨機數生成器,而srand 會設定供rand 使用的隨機數種子。如果你在第一次呼叫rand 之前沒有呼叫srand 那麼系統會為你自動呼叫srand 而使用同種子相同的數呼叫 srand 會導致相同的隨機數序列被生成。srand unsigned ti...
隨機數種子
隨機數就是就隨機數種子中取出的數。種子就是個序號,這個序號交給乙個數列管理器,通過這個序號,你從管理器中取出乙個數列,這個數列就是你通過那個序號得到的隨機數。但這個隨技術並不真正隨機。因為它是通過某個演算法的得到。也就是說你給數列管理器同乙個序號將得到同樣乙個 隨機 數列。也就是說種子和隨機數列是一...
隨機數種子
隨機數 int main 函式rand 是真正的隨機數生成器,而srand 會設定供rand 使用的隨機數種子。如果你在第一次呼叫rand 之前沒有呼叫srand 那麼系統會為你自動呼叫srand 而使用同種子相同的數呼叫 srand 會導致相同的隨機數序列被生成。srand unsigned ti...