在 JavaScript 中获取随机数的最佳方法是什么?
What is the best way to get random number in JavaScript
我需要在我正在开发的游戏中得到一个非常随机的数字。问题是 Math.random() 得到的结果完全相同,因为它基于时间戳,我用它来随机定位游戏对象,我需要立即获得随机位置。有没有比 Math.random() 更好的方法?
https://github.com/suprMax/monkyTime/blob/master/static/monkytime.js#L201
对象彼此非常接近。我试图让它更随机地从请求动画帧中窃取高精度时间,但无济于事。
随机生成器从当前时间播种的事实并不能使其返回相同的结果是后续调用。每次调用它时,它都会用新值为自己播种,它只是受时钟影响的初始值。
如果Math.random()
不够随机(它是一个伪随机数生成器),则使用真正的随机生成器。
它将需要使用一些远程数据来获得足够的熵(例如鼓风机中的球,白噪声等)。为此,您可能需要创建或使用现有服务。
大多数浏览器中的伪随机数生成器应该足以在游戏中定位对象。当然,如果您正确实现了它,则不应该一遍又一遍地获得相同的结果。
如果您绝对需要结果不可预测(例如密码学),则需要研究加密安全的PRNG。
相关文章:
- 有条件更新d3.js力图中节点的最佳方法
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- 处理浮点错误的最佳方法是什么
- 从数组中删除元素的最佳方法是:javascript/jquery
- 以编程方式填充组合框道场 (1.8) 的最佳方法是什么?
- 列出没有 mysql 的元素的最佳方法是什么
- 在jquery库中重新定义方法的最佳方法
- Javascript,用vars创建对象的最佳方法
- 使用 jQuery 从 HTML 中获取某些值的最佳方法
- 在变量中保存值的最佳方法是在应用程序关闭后使用,然后使用apachecordova在android中重新启动
- 在d3.json中使用d3.csv组合多个csv文件数据输入的最佳方法是什么
- 用jasmine测试JavaScriptUI的最佳方法
- 使用javascript:在没有阻止html标记(<b>、<p>等)的情况下,阻止脚本的最佳方法
- 如果我返回表,检查 Ajax 调用是否为 200 OK的最佳方法是什么
- JavaScript - 创建可链接函数时的最佳方法是什么
- 在上下文菜单项单击上显示侧边栏/弹出窗口的最佳方法是什么
- 在 JavaScript 中获取范围的随机数的最佳方法
- 在对象类上实现 jquery 作用域的最佳方法
- 将同步函数包装到承诺中的最佳方法是什么?
- 使用 MVC 删除 JavaScript 中硬编码字符串 Asp.Net 最佳方法