首頁>Club>
覺得取的數每次都不同還算好啦,比如我用lua發牌和麻將每次都不同,而不像以前的英雄無敵2每次一開始的序列都是一樣的。為什麼他們都說隨機數總是偽的沒有真的?C系的語言是否可以以只讀方式在硬碟或記憶體中根據隨機生成的地址和偏移來搜尋,把任意不為00或FF的值作為種子?
6
回覆列表
  • 1 # 嵌入式宏思微想

    1.種子。種子要選取帶有唯一性的值,如時間。這樣就從源頭避免了偽隨機。

    2.演算法。只要在有限次數內不重複,就達到了真隨機。因此,演算法實現一組隨機數,每個都不同(相同的已拿掉,演算法的好壞決定了出現相同數字的機率),這樣應用時再從這組數中取出,就保證了不重複。

    隨機數在應用開發中,尤其是遊戲開發中常用,這是個常見的問題,需從種子和演算法上著手解決。

  • 2 # 深入淺出話圍棋

    嚴格來說,根本不存在真隨機數,不僅計算機做不到,整個世界都做不到。

    我們先聊一下幾種常見的隨機數吧。

    第一種是通常大家說的偽隨機數

    想起我剛學c語言的時候,經常用到的rand函式,它是個標準偽隨機數生成器。每次運營程式,產生的結果都是一樣的。這種偽隨機數是透過一個確定的隨機數發生器產生的,它僅僅能保證生成很多個數的時候,在統計上趨於均勻分佈。

    第二種是通常大家說的接近真隨機的數

    它和第一種方法類似,但是可以透過一個變化的種子使得它看起來更隨機。一個常見的用法就是以時間作為種子,這樣就不會出現多次執行程式出現一樣結果的"bug"了,然而,這還是偽隨機,對於確定的種子來說。它還是一個確定的過程

    第三種是通常大家說的真隨機數

    這種通常是取自物理上的變數,比如大氣汙染指數小數點第5位,白噪聲小數點第3位。看起來足夠隨機了吧。其實它還是確定事件,在確定的外因下,這些物理資料依然是確定的。並且前一秒的資料和後一秒是有關聯的。

    我還聽到一個說法,利用量子物理的測不準理論,但其實它還是個確定事件,測不準只是人類的認知有限,從上帝視角來看,根本不存在隨機的說法!

  • 中秋節和大豐收的關聯?
  • 你覺得什麼是文理綜合素質?