【发布时间】:2016-08-13 20:54:56
【问题描述】:
简单的问题,但我对这里的细微差别很感兴趣。
我正在使用我自己提出的以下方法生成随机布尔值:
const rand = Boolean(Math.round(Math.random()));
每当random() 出现时,似乎总会有一个陷阱——它不是真正随机的,它被某种东西或其他东西所破坏,等等。所以,我想知道:
a) 以上是最佳实践方法吗?
b) 我是不是想太多了?
c) 我是不是在想事情?
d) 有没有更好/更快/更优雅的方式我不知道?
(如果 B 和 C 互斥,也有点兴趣。)
更新
如果有什么不同,我会用它来移动 AI 角色。
【问题讨论】:
-
const rand = Math.random() < 0.5等效且更简单。 -
实际上没有什么是随机的,目标是尽可能接近随机。
-
如果你有 50/50 的机会,
math.random应该足够了。只需为您的种子使用毫秒。 -
我认为访问网站的时间很随机:D 所以我有这个想法...
Boolean(+Date.now()%2) -
带 lodash -
!!_.random(1)
标签: javascript random boolean