JavaScript 随机数生成器的最佳选择
math.random() 是随机/伪随机数生成器的好方法吗?
Is math.random()
a good method for a random/pseudo-random number generator?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
math.random() 是随机/伪随机数生成器的好方法吗?
Is math.random()
a good method for a random/pseudo-random number generator?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
问题是 - 只有软件随机数生成器不能提供真正的随机数,只能提供它们的近似值。
对于大多数情况,通过 Math.random() 的标准 JS 方式就足够了。
如果您使用 Crypto API,这可以稍微改进。 作者:Kamil Kiełczewski
但这些数字的目的也很重要。因为这两种方法都会在序列中产生连续的相等数字。
例如,如果您在项目的原型阶段使用随机数输出虚拟图像,您将得到一个又一个相同的图像,这是您宁愿避免的。为此,好的随机数是那些不会连续两次产生相同数字的随机数。这只能通过存储最后一个数字和递归来完成。
The thing is - only software random number generators cannot provide true random numbers, only approximations to them.
The standard JS way via
Math.random()
is sufficient for most cases.This can be improved a bit if you use the Crypto API. by Kamil Kiełczewski
But the purpose of the numbers is also important. Because both approaches produce consecutive equal numbers in the sequence.
If you use random numbers to output dummy images in the prototype phase of a project, for example, you would have identical images one after the other, which you would rather avoid. For this purpose, good random numbers would be those without producing the same number twice in a row. This can only be done by storing the last number and recursion.
getRandomInt()
random() 是一个伪随机数,因为没有计算机可以生成真正的随机数,它在所有尺度和所有大小的数据集上都表现出随机性。
getRandomInt()
random() is a pseudo-random number as no computer can generate a truly random number, that exhibits randomness over all scales and over all sizes of data sets.
Math.round()
函数返回四舍五入到最接近整数的数字值。我想说随机数的最佳方法是 math.random()。
祝你好运!
The
Math.round()
function returns the value of a number rounded to the nearest integer.I would say the best method for random numbers is math.random().
good luck!