JavaScript中可种子化的随机数生成器

8
我正在寻找一种JavaScript随机数生成器,可以使用特定种子进行初始化,并提供确定性结果(根据该种子)。 它应该能够在某个范围内提供随机整数,但是我也可以使用输出double类型的随机数生成器(就像Math.random()一样)。
基本上,我正在寻找一个类似于Java世界中已知的java.util.Random的JavaScript版本。
是否已经内置了这样的东西?是否有一些(可能与HTML5相关的API)可以指定这样的事情?是否有提供这样的随机数生成器的库?
我正在用JavaScript实现遗传算法,需要能够为相同输入(包括种子)收集相同的结果以进行研究。

类似于:http://davidbau.com/archives/2010/01/30/random_seeds_coded_hints_and_quintillions.html - Prisoner
2
@Danny,从他的问题中可以看出他了解数学 - 但是你不能指定一个种子。 - Prisoner
3
@Danny:“Math.random” 无法被明确设置种子,而提问者已经知道这一点。仔细阅读问题应该会告诉你这一点。;-) - T.J. Crowder
@Prisoner 谢谢,我漏掉了那一部分。 - Danny
1个回答

12

@Tom,添加范围的最佳方法是什么?也许我错过了什么,但David Bau的示例似乎没有说明。 - NinjaFart
2
@NinjaFart 如果一个随机数生成器的范围是 [0.0-1.0>,那么你可以将其乘以最大值(比如5),然后向下取整。因为随机数生成器永远不会生成1.0,所以你得到的数字范围是0到4。同样地,如果你想要一个在2到10之间的数字,你可以使用 Math.random() * 8 + 2 - Tom van der Woerdt
@Tom 啊!当然。谢谢 :) - NinjaFart
1
这个算法的名称是“Mersenne Twister”。更多信息请参见:https://en.wikipedia.org/wiki/Mersenne_twister - Blaise

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接