梅森旋转算法(Mersenne twister) 是一个伪随机数发生算法。由。Makoto Matsumoto(松本真) 和Takuji Nishimura(西村拓士)在1997年开发的,基于有限二进制字段上的矩阵线性递归field F_{2}。 可以快速产生高质量的伪随机数, 修正了古典随机数发生算法的很多缺陷。
梅森旋转算法这个名字来自周期长度取自梅森素数的这样一个事实。这个算法通常使用两个相近的变体,不同之处在于使用了不同的梅森素数。一个更新的和更常用的是MT19937, 32位字长。 还有一个变种是64位版的MT19937-64。 对于一个k位的长度,Mersenne Twister会在[0,2^k-1]的区间之间生成离散型均匀分布的随机数。
Java实现有2个版本,
一个是快速版本,非线程安全。http://www.cs.gmu.edu/~sean/research/mersenne/MersenneTwisterFast.java,java.util.Random比它慢1/3。
一个是普通版本http://www.cs.gmu.edu/~sean/research/mersenne/MersenneTwister.java,线程安全,但比java.util.Random慢1/3。
分享到:
相关推荐
2. 梅森旋转算法(Mersenne Twister):使用位运算和旋转操作来生成高质量的伪随机数。 3. 哈希函数:将给定输入通过哈希算法处理,输出的结果被认为是随机的。 4. 物理随机数发生器:利用物理过程中的不可预测性...
基于FPGA的量子加密视频通信系统设计,张经纬,张秀再,随着互联网的普及与多媒体技术快速发展,人们对多媒体数据信息(如视频)在公共信道传输的保密性愈加关注,但公共信道的开放使得
matlab开发-MersenneTwister。梅森捻线机均匀伪随机数发生器。
–伪随机数:计算机中通过采用梅森旋转算法生成的(伪)随机序列元素 python中用于生成伪随机数的函数库是random 因为是标准库,使用时候只需要importrandom random库的常用函数: random库的引用方法与math库...
伪随机数生成 LCG, KDF2, Blum Blum Shub, ANSI X9.17, 梅森旋转算法, RDRAND, RDSEED 串流加密法 ChaCha8/12/20, ChaCha20 (IETF version), HC-128 and HC-256, Panama, Rabbit, Salsa20, SOSEMANUK, XSalsa20 AES ...
(4分) A 梅森旋转算法 B 线性同余法 C 蒙特卡洛⽅法× D 平⽅取中法 random.uniform(a,b)的作⽤是(A)。 (4分) A ⽣成⼀个[a,b]之间的随机⼩数 B ⽣成⼀个(a,b)之间的随机数× C ⽣成⼀个[a,b]之间的随机整数 ...
通过建立零驱动估计、单驱动估计两种新模型及优化梅森旋转算法,对随机数生成方法进行了改进。基于圆周率估算的仿真检测结果表明:新建立的两种模型在获取高精度的同时,分别使仿真时间缩短了80.1%和40.3%;改进后的梅森...
伪随机数的生成 功能:生成一个16进制伪随机字符串 1.字符串的长度为len(2的倍数); 2.字符串带有输入的前缀 (如ex=“0x345566”),前缀长度不超过输出字符串的一半 ... 梅森旋转算法,用来产生伪随机数。
c代码-梅森数 梅森数
这是乔治·梅森大学算法分析课程的最后一个项目。 假设条件 在实现算法时,我做了以下假设: 在定理3中,我将g项解释为彼此不相等的最大等价子树的数量,这意味着大小为1的子树不会对g有所贡献。 作者似乎暗示了这...
其中包含移位算法,仿射算法,DES,AES,RSA,S盒8选1,梅森旋转法,MD5,RSA 数字签名验证
其中包含移位算法,仿射算法,DES,AES,RSA,S盒8选1,梅森旋转法,MD5,RSA 数字签名验证
程序实现的功能有移位加密 仿射加密 Des Aes Rsa 求两数最大公因子gcd求逆元inv 梅森旋转法求随机数 杂凑算法MD5 数字签名 s盒六进四出功能