如何自定義隨機數函數?
01-04
隨機數函數的原理是什麼,怎麼實現,可以用php、js、c、java等編程語言實現,用原生的寫法實現,而不是自帶的方法函數
建議參考 [1]。
[1] Knuth, Donald E. "Chapter 3 (" Random Numbers") in Volume 2 (" Seminumerical Algorithms") of" The Art of Computer Programming." (1969).
偽隨機數生成演算法常用的有五六種,一共有至少十來種。閑了專欄文章專門講這個。
自己去看源碼。。。
最基本的有m序列和元胞自動機
不過呢,隨機性要做好並不容易
php的隨機數mt_rand,演算法是梅森旋轉演算法,python貌似也是這種演算法
我記得有兩種比較簡單巧妙的偽隨機數發生器設計一是,用生態學中的蟲口模型,也叫logistics模型二是,用一或多種一維元胞自動機
int getRandomNumber(){
return 4; //choose by a fair dice roll
//guaranteed to be random
}
推薦閱讀:
※怎樣理解或評價面向對象的編程技術?
※如何從零基礎做出類似拳皇一類的動作類2D遊戲?
※SPFA演算法可否取代Dijkstra演算法成為計算單源最短路徑的最優解?
※彙編指令集與cpu指令集是什麼關係?
※Hash時取模一定要模質數嗎?