python隨機數(shù)生成算法#
現(xiàn)在程序中用的隨機數(shù)拿霉,都是偽隨機數(shù)算法生成的蹬竖。例如線性同余法色瘩,平方取中法等锥腻。
1.梅森旋轉(zhuǎn)算法##
梅森旋轉(zhuǎn)(Mersenne twister)算法是一個偽隨機數(shù)發(fā)生算法吠勘。由松本真和西村拓士 在1997年開發(fā)性芬,基于有限二進制字段上的矩陣線性遞歸【绶溃可以快速產(chǎn)生高質(zhì)量的偽隨機數(shù)植锉, 修正了古典隨機數(shù)發(fā)生算法的很多缺陷。梅森旋轉(zhuǎn)算法的最長周期取自一個梅森素數(shù)
由此命名為梅森旋轉(zhuǎn)算法俊庇。常見的兩種為基于32位的MT19937-32和基于64位的MT19937-64狮暑。
梅森旋轉(zhuǎn)算法是R,Python,Ruby,IDL, Pascal,PHP,Maple,Matlab,GMP和GSL的默認偽隨機數(shù)產(chǎn)生器。從C++11開始辉饱,C++也可以使用這種算法搬男。在Boost C++,Glib和NAG數(shù)值庫中,作為插件提供彭沼。 在SPSS中缔逛,梅森選旋轉(zhuǎn)算法是兩個PRNG中的一個:另一個是產(chǎn)生器僅僅為保證舊程序的兼容性,梅森旋轉(zhuǎn)被描述為”更加可靠“姓惑。梅森旋轉(zhuǎn)在SAS中同樣是PRNG中的一個褐奴,另一個產(chǎn)生器是舊時的且已經(jīng)被棄用。
梅森旋轉(zhuǎn)算法是利用線性反饋移位寄存器(LFSR)產(chǎn)生隨機數(shù)的挺益。