今天主要是来研究梅森旋转算法,它是用来产生伪随机数的,实际上产生伪随机数的方法有很多种,比如线性同余法,
平方取中法等等。但是这些方法产生的随机数质量往往不是很高,而今天介绍的梅森旋转算法可以产生高质量的伪随
机数,并且效率高效,弥补了传统伪随机数生成器的不足。梅森旋转算法的最长周期取自一个梅森素数
,
由此命名为梅森旋转算法。常见的两种为基于32位的MT19937-32和基于64位的MT19937-64。
由于梅森旋转算法是利用线性反馈移位寄存器(LFSR)产生随机数的,所以我们先来认识线性反馈移位寄存器。
首先,移位寄存器包括两个部分
(1)级,每一级包含一个比特,比如11010110是一个8级的移位寄存器产生的
(2)反馈函数,线性反馈移位寄存器的反馈函数是线性的,非线性反馈移位寄存器的反馈函数是非线性的
一个
级的移位寄存器产生的序列的最大周期为
梅森旋转算法与线性反馈移位寄存器

本文介绍了梅森旋转算法,一种用于生成高质量伪随机数的高效方法,尤其适用于信息指纹技术和搜索引擎网页判重。算法基于线性反馈移位寄存器(LFSR),其周期与梅森素数相关,确保随机性。文章讨论了LFSR的工作原理、反馈函数和抽头序列,并以4位LFSR为例展示其周期性。同时,提到Python和C++11中的随机数生成器已采用该算法。
最低0.47元/天 解锁文章
16

被折叠的 条评论
为什么被折叠?



