我试着用这个函数在两个键之间找到一个随机整数,我知道Math.floor () and Math.random()的方法是如何工作的,但我不明白这个函数(max-min + 1)min的逻辑. 为什么我们要先用(max-min+1)再加上min呢?

function random(min, max) {
    const num = Math.floor(Math.random() * (max - min + 1)) + min;
    return num;
}

console.log(random(5, 10));

推荐答案

(max - min + 1)的目的是确定指定范围内可能的值的总数,并确保当您将其乘以Math.random()时,会考虑该范围内的所有整数.添加1对于包含该范围的上限至关重要.

例如,如果要生成介于36(包括36)之间的随机数.区间是3, 4, 5, 6.如果你只算(max - min),那就是(6 - 3),等于3.如果不加1,您将得到3个不同值(3, 4, 5)的范围,并且上限(6)将被排除.

通过将1加到计算(max - min),你得到(6 - 3 + 1),等于4.现在,您有4个不同值的范围(3, 4, 5, 6),包括上限.

Javascript相关问答推荐

Next.js Next/Image图像隐含性有任何类型-如何修复?

materialized - activeIndex返回-1

深嵌套的ng-container元素仍然可以在Angular 布局组件中正确渲染内容吗?

Google图表时间轴—更改hAxis文本 colored颜色

Rehype将hashtag呈现为URL

如何修复(或忽略)HTML模板中的TypeScript错误?'

配置WebAssembly/Emscripten本地生成问题

在拖放时阻止文件打开

html + java script!需要帮助来了解为什么我得到(无效的用户名或密码)

如何在bslib nav_insert之后更改导航标签的CSS类和样式?

如何避免页面第一次加载时由于CSS样式通过JavaScript更改而出现闪烁

使用Google API无法进行Web抓取

将数组扩展到对象中

第一项杀死下一项,直到数组长度在javascript中等于1

无法读取未定义的属性(正在读取合并)-react RTK

背景动画让网站摇摇欲坠

Node.js错误: node 不可单击或不是元素

使用API调用的VUE 3键盘输入同步问题

重新渲染过多(&Q).REACT限制渲染次数以防止无限循环.使用REACT下拉菜单时

鼠标进入,每秒将图像大小减小5%