`
xpenxpen
  • 浏览: 731701 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

梅森旋转算法

 
阅读更多
    梅森旋转算法(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。
分享到:
评论

相关推荐

    随机生成的帮助类C#实现

    2. 梅森旋转算法(Mersenne Twister):使用位运算和旋转操作来生成高质量的伪随机数。 3. 哈希函数:将给定输入通过哈希算法处理,输出的结果被认为是随机的。 4. 物理随机数发生器:利用物理过程中的不可预测性...

    matlab开发-MersenneTwister

    这个算法以其出色的周期长度、均匀性和可预测性而闻名,尤其适用于大规模模拟和统计计算。Mersenne Twister的名称来源于它基于数学上的Mersenne素数。 Mersenne Twister算法由松本真和西村拓士于1997年提出,它的...

    Python下浅浅的探究随机数的产生方法1

    3. **梅森旋转算法(Mersenne Twister)**:这是目前广泛使用的高效伪随机数生成器,具有长周期性和良好的统计性质。Python的`random`库默认使用的就是梅森旋转算法。 4. **BOX-MULLER法**:用于生成符合正态分布的...

    Python random库使用方法及异常处理方案

    –伪随机数:计算机中通过采用梅森旋转算法生成的(伪)随机序列元素 python中用于生成伪随机数的函数库是random 因为是标准库,使用时候只需要importrandom random库的常用函数: random库的引用方法与math库...

    MT.rar_MT算法_mt_mtrand.h

    MT算法,全称为Mersenne Twister(梅森旋转算法),是一种广泛应用的伪随机数生成器(Pseudo-Random Number Generator, PRNG)。这个算法以其高效、周期长、均匀性好等特点,在各种需要随机数的领域,如模拟、统计、...

    Crypto++-8.7.0静态库

    伪随机数生成 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 ...

    易语言源码伪随机数生成原理.rar

    2. **算法选择**:常见的PRNG算法有线性同余法、乘同余法、梅森旋转算法(Mersenne Twister)、ISAAC算法等。易语言可能会采用其中的一种或几种。例如,梅森旋转算法因其优秀的周期性和均匀性,被许多编程语言用作...

    CPP随机数_随机数生成_

    3. **梅森旋转算法 (Mersenne Twister)**:`std::mt19937` 是C++标准库中实现的梅森旋转算法,它是一个高效的伪随机数生成器,具有极长的周期(2^19937-1)。 4. **ISAAC算法 (Indirection, Shift, Add, XOR, ...

    论文研究-一种蒙特卡罗方法的改进方案 .pdf

    他们在原有方法的基础上,建立了零驱动估计和单驱动估计两种新模型,并对梅森旋转算法进行了优化。通过基于圆周率估算的仿真检测,结果显示,这两种新模型在保证高精度的同时,分别使仿真时间缩短了80.1%和40.3%;...

    伪随机数的生成

    Mersenne Twister(梅森旋转算法)是一种用于生成伪随机数的算法,以其高效性和较长的周期而闻名。该算法基于线性反馈移位寄存器原理,可以生成具有近似随机特性的数列。其特点包括: 1. **周期长**:周期长度可达2...

    信息安全技术实验随机数的产生

    另一种方法是软件随机数生成器(SRNG),它依赖于特定的算法,如线性同余法、梅森旋转算法等。然而,纯软件方法往往需要一个良好的初始种子,通常是来自硬件事件的随机数据,以确保生成的序列足够随机。 实验中可能...

    基于Python的数据分析软件设计与实现_余飞扬.pdf

    算法实现上,生成随机数算法采用基于有限二进制字段上的矩阵线性递归的梅森旋转算法,改善了古典随机数发生算法的很多缺陷,能够快速产生高质量随机数。 6. 数据分析模块设计:数据分析模块提供了描述性统计、统计...

    Java实现高效随机数算法的示例代码

    这时,我们可以采用梅森旋转算法(Mersenne Twister,MT)来提升随机数生成的效率。 梅森旋转算法是一种广泛应用的伪随机数生成器,它由松本真(Matsumoto)和西村拓士(Nishimura)于1997年提出。该算法基于有限二...

    JS实现随机数生成算法示例代码

    本文介绍了一个基于梅森旋转算法(Mersenne Twister)的JavaScript随机数生成器,并提供了一个简单的随机数生成函数。 首先,我们了解了梅森旋转算法,这是一种广泛使用的伪随机数生成算法,其核心是通过线性递归...

    易语言求千位圆周率源码.7z

    这个源码文件可能是用易语言的内置函数和循环结构来逐步逼近圆周率的值,可能采用了诸如“梅森旋转算法”(Mersenne Twister)或者“Bailey–Borwein–Plouffe公式”(BBP公式)等高效算法。 易语言的语法结构简洁...

    weisuijishu.rar_伪随机_伪随机数 数的保存_生成器_随机数生成

    伪随机数生成器的工作原理基于数学算法,通常包括线性同余法、乘同余法、梅森旋转算法等。这些算法通过一个初始种子(也称为状态)来开始,然后每次生成一个伪随机数后,都会更新这个种子,确保下一个数看似与前一个...

    随机数生成分析软件

    该软件"Rand4.0"可能采用了特定的随机数生成算法,例如线性同余法、平方取中法、梅森旋转算法等,这些算法各有优缺点,选择哪种通常取决于所需的随机性质量、速度和内存使用。随机数的质量直接影响到应用的准确性和...

Global site tag (gtag.js) - Google Analytics