隨機數在系統開發中幾乎是不可避免的一個需求,在大多數面試寶典必定會告訴你所謂的隨機數實際上是「僞」隨機數,除此以外也就沒有什麼別的了。實際上這條知識自己已是很是落後了,更不用說當它仍是正確的時候,用處也並非很大。本篇要提到的正確使用隨機數的要點,是一個比較常見的錯誤,甚至某不僅是世界500強公司也曾經在其產品中出現過這種問題,還改了 2 次才解決問題。面試
從根本上說,一個很是容易犯的錯誤出在對隨機數種子的認識上,指定隨機數種子一種用途是重複產生相同的隨機數序列,另外更經常使用的是但願隨機數序列能夠更隨機一點,避免產生相近的隨機數。實際上如今經常使用的僞隨機數序列是用線性同餘算法生成的,給定一個種子連續計算產生的僞隨機數是均勻分佈的,若是不斷指定新的隨機數種子,會影響到序列的分佈。從隨機數生成算法和種子做用,很容易推導出幾個常犯的錯誤:算法
要正確使用隨機數,須要注意如下幾點:編程