說明:如果您有任何疑問或想咨詢其他業務請撥打電話 400 685 0732
全網監測海量數據按需發布監測預警
實時把握輿情動態精準追溯信息源頭
在實驗或者是其他需要用到數字的時候,我們經常會需要用到隨機數字,這時我們就需要借助一些神隨機字生成器來達到我們的目的,可隨機數字生成器有哪些呢?接下來我們就一起來好好的了解一下吧。
隨機數字生成器——隨機數字生成器的種類
偽隨機數與偽隨機數生成器
計算機是確定性的機器,因此它無法直接生成真正的隨機數,而渾沌系統的隨機數生成速度又比較慢,在許多情況下不適合作為快速的(偽)隨機數庫函數算法。快速的偽隨機數生成算法中最著名的要數linear-congruentialmethod(線性同余法),也就是:
Xn+1=(aXn+b)%c
//%就是C/C++中的MOD(同余)運算符
這種方法可以從一個種子X0=seed開始,連續生成任意長的偽隨機數序列Xn。它的運算過程極其簡單,并且如果令c=2m,其中m為Xn的字長,則連MOD運算都直接省掉了——Xn+1≥2m時高位自動溢出而被截除。用這種辦法生成的偽隨機數序列,在給定范圍和精度內確實滿足均勻分布的要求,但是并非連續分布,因為計算機存放數據的精度不是無限!正是由于最小數據間隙的存在,該序列將會以一個相當長的周期循環。
混沌動力學系統產生的隨機數
對于一般的科學研究來說,只要保證偽隨機數的內在規律不與所研究的自然規律相似,并且在所需數據精度下呈現“準連續的均勻分布”即可,而對“由少量數據反推生成規律”這種反向工程的困難程度不作限制。有時甚至還需要一種簡單清晰的生成規律,以便確認這種規律是否與所研究的自然規律相似。
但是,在數據加密的時候,往往對這種反向工程極為擔心,因此需要設計一種難于被反推出的生成規律。由大質數組合出巨大合數的乘法對反向工程來說相當困難,但是它需要用特殊的、巨大的數據結構來存放數據和進行運算,因此不適合用于擴展成為快速產生偽隨機數的算法。
硬件隨機數生成器
正因為硬件隨機數生成器產生的數字完全是隨機的,即使是設計和使用它的人也無法找到這些真隨機數的生成規律,所以用一個軟件來精確的校正其分布變得相當困難,必須使用大量統計數據獲得經驗校正函數,而且還不能保持非常好的校正精度,這一點對加密應用來說問題不大,但是對于科學計算而言就會大大降低計算結果的精度。
Excel怎么隨機生成數字
首先介紹一下如何用RAND()函數來生成隨機數(同時返回多個值時是不重復的)。
在單元格中輸入=RAND(),回車后單元格即返回了一個隨機數字。
RAND()函數返回的隨機數字的范圍是大于0小于1。因此,也可以用它做基礎來生成給定范圍內的隨機數字。
生成制定范圍的隨機數方法是這樣的,假設給定數字范圍最小是A,最大是B,公式是:
=A+RAND()*(B-A)。
舉例來說,要生成大于60小于100的隨機數字,因為(100-60)*RAND()返回結果是0到40之間,加上范圍的下限60就返回了60到100之間的數字。
上面RAND()函數返回的0到1之間的隨機小數,如果要生成隨機整數的話就需要用RANDBETWEEN()函數了,該函數生成大于等于1小于等于100的隨機整數。
這個函數的語法是這樣的:=RANDBETWEEN(范圍下限整數,范圍上限整數),結果返回包含上下限在內的整數。注意:上限和下限也可以不是整數,并且可以是負數。
RAND()和RANDBETWEEN()是生成隨機數的基礎函數,也可以靈活變通。比如說要生成0.01至1之間包含兩位小數的隨機數,則可用下圖的公式實現:
以上就是隨機數據生成器有哪些的所有內容,大家可以根據自己的需求來選擇不同的隨機數據生成器,如果各位還想了解更多與之有關的信息,歡迎關注我們文軍營銷的官網。
推薦閱讀
說明:如果您有任何疑問或想咨詢其他業務請撥打電話 400 685 0732