我知道即使它可以,概率也会很小但理论上是否可能?
答案 0 :(得分:1)
根据ECMAScript标准,只有一种数字类型:双精度64位二进制格式IEEE 754值(数字介于 - (253 -1)和253 -1之间)。整数没有特定的类型。
那么,当乘以80时,是否有任何IEEE 754数字成为整数?
80 = 2 * 2 * 2 * 2 * 5。由于该值是使用二进制分数存储的,因此数字n / 16(其中n在[1-15]范围内)都可以精确表示。它们在乘以80时也会变成整数。
因此,至少有15个不同的值会在乘以80时产生整数。
随机数生成器实际上可以产生任何这些值吗?我不能说。这将取决于javascript的实现。
答案 1 :(得分:0)
......?是的:
你想要一个0到80之间的整数吗?
var my_integer = parseInt (""+ 80 * Math.random());
编辑您还可以向下舍入(floor
,ceil
)& amp;起来:
发言,例如:76,8 => 76
var my_integer = Math.floor( parseInt (""+ 80 * Math.floor()));
Ceil,例如:76,8 => 77
var my_integer = Math.ceil(parseInt (""+ 80 * Math.ceil()));
答案 2 :(得分:-1)
是的,这是可能的。从节点控制台:
> for(var i = 0; i < 1000000000; i++) {
... var rn = Math.random() * 80
... if(rn == Math.round(rn)) {
..... console.log('success')
..... break
..... }
... }
success
undefined
>