是否可以在JavaScript中使用Math.random()*80来生成一个整数?
Is it possible to generate an integer by using Math.random()*80 in JavaScript?
我知道即使可以,概率也很小,但理论上可能吗?
根据ECMAScript标准,只有一种数字类型:双精度64位二进制格式IEEE 754值(介于-(253 -1)和253 -1之间的数字)。整数没有特定的类型
那么,是否有任何IEEE 754数字在乘以80时变成整数?
80 = 2*2*2*5。由于该值是使用二进制分数存储的,因此数字n/16(其中n在[1-15]的范围内)都可以精确地表示。它们乘以80也会变成整数。
所以至少有15个不同的值乘以80会得到整数
随机数生成器实际上可以产生这些值中的任何一个吗?我不能说。这取决于javascript的实现
…? 是:
你想要一个介于0到80之间的整数吗?
var my_integer = parseInt (""+ 80 * Math.random());
EDIT也可以将(floor
, ceil
)四舍五入&:
地板,例如:76,8=>76
var my_integer = Math.floor( parseInt (""+ 80 * Math.floor()));
var my_integer = Math.ceil(parseInt (""+ 80 * Math.ceil()));
这是可能的。从节点控制台:
> for(var i = 0; i < 1000000000; i++) {
... var rn = Math.random() * 80
... if(rn == Math.round(rn)) {
..... console.log('success')
..... break
..... }
... }
success
undefined
>
相关文章:
- 我想在AngularJS应用程序中创建一个输入数字框,用户不应该在该框上键入十进制数字.(一个整数输入框)
- Javascript-当存在's是一个整数标记
- 有可能得到一个大整数实例的自然日志吗
- 如何拆分一个整数和产生的所有数字来创建一个新数字
- 创建一个javascript数组(N),该数组由连续的较小整数组成,其和为1000
- 如何要求用户输入一个介于 1 和 50 之间的整数,然后小程序打印出一行这个星数
- 找到字符串值,但需要一个整数
- 使用javascript向上取整到下一个整数,即使值为1.0000000001
- 只使用一个整数表示颜色-Javascript
- 将随机整数分配给数组中的项,summa应该是一个固定的数字
- 在字符串名称后附加一个整数
- JavaScript:将一个整数与一长串字符串关联起来
- 如何传递一个整数来创建新的变量名
- 将浮点数向上舍入到 javascript 中的下一个整数
- node.js - 发送一个整数作为 POST 请求中的输入参数
- 在类名的末尾添加一个整数
- 我想用javascript创建一个随机整数
- 正则表达式仅检查一个整数
- JavaScript 函数通过发送下一个元素的整数来更改元素的可见性
- 正则表达式,用于将字符串中的最后一个整数与 php 和 javascript 匹配