【发布时间】:2010-06-17 20:53:22
【问题描述】:
出于好奇,Math.random() 可以为零吗?
例如,如果我有:
while (true){
if (Math.random() == 0)
return 1;
}
我真的会得到一个回报吗?还需要考虑舍入误差,因为 Math.random() 返回一个双精度值。
我问是因为我的 CS 教授说 random() 从 0 到 1 包括在内,我一直认为它是排他的。
【问题讨论】:
-
您的 CS 教授是在谈论 Java,还是在谈论一个等分布的纯数学随机函数?因为这样的函数,对于从 0 到 1 的实数,没有任何概率为 0。也不是 1。也不是 0.5:概率只能分配给一个区间。但这对于我们在 Java 中的离散数字范围当然不是真的......(我敢肯定,这就是他的意思;)
-
只需检查 Math.random() 的文档,它会指示它是包含还是独占。
-
顺便说一句,这里没有舍入错误。你只会得到一个
double,其尾数中有 53 个均匀分布的伪随机位。 -
这篇文章在一个关于 Minecraft 错误的 YT 视频中得到推荐:youtube.com/watch?v=JFHGiv6qeX8
-
我想我实际上得到了一次零。我正在编写一个脚本以随机速度移动一系列圆圈,而其中一个恰好在周围的混乱中静止