问题标签 [mersenne-twister]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Math.random 使用什么算法?
自从我学习计算机科学以来,每当出现随机数时,总是 Mersenne Twister。从来没有一个问题,没有选择。只是,使用 Mersenne Twister。
那么 JavaScript 的 Math.random 使用什么?似乎它应该使用 Mersenne Twister,因为它显然没有同行,但我找不到任何关于它是否使用的参考。
有谁知道它依赖什么,和/或为什么不是 MT,如果是这样的话?
c++ - C++ Mersenne Twister 和随机数库
我正在将一个大型科学模拟软件迁移到 C++。在 Java 中,我使用 了Cern Colt 库,它包含一个完整的随机分布列表。
当需要不同的发行版(例如提供的链接中列出的那些)时,通常使用什么 C++ 库?
较小的重点库是首选(不像 boost)。
谢谢。
c++ - Mersenne Twister 种子没有效果
所以我有一个使用 Mersenne Twister 的自定义随机器类(我使用的代码改编自这个站点)。一切似乎都运行良好,直到我开始测试不同的种子(我通常使用 42 作为种子,以确保每次运行我的程序时,结果都是相同的,因此我可以看到代码更改如何影响事物)。
事实证明,无论我选择什么种子,代码每次都会产生完全相同的数字序列。显然我做错了什么,但我不知道是什么。这是我的种子功能:
这是我的 Rand() 函数
各种值是:
谁能帮我弄清楚为什么不同的种子不会产生不同的数字序列?
c - 使用 dSFMT 进行随机浮点 (0,1)
这个项目在 iphone 的 Obj-C 中。我在这里使用双浮点版本的 sfmt:http: //www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/#dSFMT
在用当前时间播种 dsmft 之后,我打电话给:
生成一个介于 0 和 1 之间的随机浮点数。还有其他两个选项,即:
我从文档中知道,区别在于 0 或 1 侧是打开还是关闭,并以数学方式显示:[0,1)、(0,1] 或 (0,1)。
但我不知道这意味着什么,或者使用哪个来满足我的需要。我只想要 0 到 1 之间分布最均匀的浮点数。
php - PHP 的 mt_rand 是如何播种的?
我知道 PHPmt_rand()
不应该用于安全目的,因为它的结果在密码学上并不强。然而,很多 PHP 代码就是这样做的,或者在没有更好的随机性来源时将其用作后备。
那么它有多糟糕呢?mt_rand
播种使用哪些随机性来源?mt_rand
加密应用程序是否存在其他安全问题?
c++ - MTRand 在编译时产生错误
我在我定义的类中使用 MTRand(来自http://www.bedaux.net/mtrand/的 Mersenne Twister 随机数生成器)。当我尝试编译时,我得到一个无法解码的意外错误。我是一个新手 C++ 程序员,所以任何帮助都会有很长的路要走......
这是我的代码的相关部分:
然后有一个函数,如果调用它,它会为随机数生成器设置一个种子
我只是想测试它是否可以编译,所以我创建了一个完全不执行任何操作的 main 函数:
在编译时,我得到一个错误
我不确定这个错误是什么意思,以及应该如何删除它。
据我了解,MTRand 无法弄清楚如何初始化种子......但是 MTRand 类中有一个默认的种子,所以我看不出问题出在哪里。
c++ - 将无符号字符数组重铸为无符号长数组
好的,我正在使用原始 SHA1 散列来播种 Mersenne Twister 伪随机数生成器,生成器让我可以选择使用 unsigned long 或 unsigned long 数组播种
我正在使用的 SHA1 类将哈希作为 20 字节的无符号字符数组提供给我
我想我可以将这个 chars 数组重铸为 longs 数组以获得工作种子,但我怎么知道得到的 longs 数组有多长?
示例代码:
我希望没有数据丢失(因为没有字节被丢弃),因为我需要它来保持加密安全
php - PHP与Javascript中MT实现中相同种子的不同输出
我正在尝试在 PHP中实现Mersenne Twister算法。我从http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/VERSIONS/JAVASCRIPT/java-script.html获取了 Javascript 实现
我几乎已经从上面的 js 代码中进行了行到行的转换。但是,为给定种子生成的随机数在 PHP 中是不同的。
在 PHP 中实现(选择数据类型等)时是否需要遵循任何特定步骤?
代码片段如下
$twister1->int32() * (1.0 / 4294967296.0)和 genrand_float(range)给出不同的输出。
谢谢,
c - 在 c 中实现流密码
我想实现以下功能:
- 我正在使用 Mersenne-Twister-Algorithm(来自 Wikipedia)作为我的伪随机数生成器。
- 这是一个流密码
- 伪代码为:密文=CLEARTEXT XOR STREAM;“流”被定义为 PSEUDORANDOM_NUMBER XOR KEY
我写了以下函数:
但该功能不能正常工作;它返回(putchar
部分)不可读的东西。我的错误在哪里?还是整个代码错了?
c# - Mersenne Twister 随机算法我如何播种 init_genrand,随机数总是相同的 C#
我正在为 MT19937 使用 A C 程序,初始化改进了 2002/1/26。由 Takuji Nishimura 和 Makoto Matsumoto 编码。在复制源文件并运行随机函数后取自Codeproject 链接 ,我总是得到相同的数字。在提到的文件说明中
使用前,使用 init_genrand(seed)
或 init_by_array(init_key, key_length) 初始化状态。
我怎样才能初始化种子,
构造函数以这种方式初始化它,这导致随机数始终相同: