Math.floor(Math.random() * 5 + 1) 的概念,真实范围是多少,为什么?

2023-11-23

通过将随机数(介于 0 和 1 之间)乘以 5,我们将其设为 0 到 5 之间的随机数(例如 3.1841)。 Math.floor() 将此数字向下舍入为整数,并在末尾添加 1 将范围从 0 到 4 更改为 1 到 5 之间(最多(包括 5))。

上面的解释让我很困惑......我的解释如下:

--加上 5 给出了 5 个数字的范围 --但它以 0 开头(就像一个数组?) --所以从技术上讲是0 - 4 ——加上 1,你就得到了 1 - 5

我对 JS 很陌生,甚至不知道这种问题在这里是否合适,但到目前为止这个网站非常棒。感谢您的任何帮助!


来自Mozilla 开发者网络文档 on Math.random():

Math.random() 函数返回 [0, 1) 范围内的浮点伪随机数,即从 0(含)到 1(不包括)。

以下是两个随机生成的数字示例:

Math.random() // 0.011153860716149211
Math.random() // 0.9729151880834252

因此,当我们将随机生成的数字乘以另一个数字时,它的范围将从 0 到比乘以的数字低最多 1 的范围(如Math.floor()只是删除小数位而不是对数字进行四舍五入(也就是说,0.999 在处理时变成 0Math.floor(), not 1)).

Math.floor(0.011153860716149211 * 5) // 0
Math.floor(0.9729151880834252 * 5)   // 4

加一只是将其抵消为您所追求的值:

Math.floor(0.011153860716149211 * 5) + 1 // 1
Math.floor(0.9729151880834252 * 5) + 1   // 5
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Math.floor(Math.random() * 5 + 1) 的概念,真实范围是多少,为什么? 的相关文章

随机推荐

  • 使用结构标识符来表示 POD 类型和 C 结构

    考虑下面的代码 struct Foo template
  • 在 nginx 中使用别名作为相对 url 时的禁止位置

    我正在尝试使用 Nginx 在相对 URL 上设置 roundcube phpldapadmin 例如 example com roundcube example com phpldapadmin 源位于以下文件夹中 var www rou
  • 如何使用 Javascript 在 Safari 中生成按键事件?

    如何以编程方式从 Safari 中运行的 Javascript 代码生成按键事件 看起来 WebKit 使用 DOM level 3 模型从 Javascript 创建键盘事件 而 DOM level 3 键盘事件模型不支持按键事件 我可以
  • 如果我只对一些样本进行转发,什么时候计算图会被释放?

    我有一个用例 我对批次中的每个样本进行转发 并且仅根据样本模型输出的某些条件累积某些样本的损失 这是一个说明性代码 for batch idx data target in enumerate train loader optimizer
  • python Pipes 的同步/异步行为

    在我的应用程序中 我使用多处理模块中的管道在 python 进程之间进行通信 最近 我观察到一种奇怪的行为 具体取决于我通过它们发送的数据大小 根据 python 文档 这些管道基于连接 并且应该以异步方式运行 但有时它们在发送时会卡住 如
  • python 矩阵转置和zip

    如何获得这个矩阵的转置 任何更简单的算法方法来做到这一点 第一个问题 Input a 1 2 3 4 5 6 7 8 9 Expected output a 1 4 7 2 5 8 3 6 9 第二个问题 Zip 给了我下面的输出 当我不知
  • SQLAlchemy 克隆具有关系的表行

    继这个问题之后SQLAlchemy 分离对象的修改 这使得对象的副本很好 但它丢失了原始对象具有的任何多对多关系 有没有办法复制对象以及任何多对多关系 Cheers 我通过遍历对象图并对图中的每个对象执行 expunge make tran
  • 使用 Delphi 进行 JNI 编程

    我可以用Delphi来编程吗Java 本机接口 来自阅读基本 JNI如果您确保使用 C 调用约定 这似乎是可能的 以前有人这样做过吗 我希望得到有关工具的提示 这些工具将有帮助 例如一个将Javah的C头文件转换为Delphi的工具 您可以
  • 文本缩进不适用于锚标记

    http jsfiddle net corinem TtPgy 我在用着 a href Lorem ipsum dolor a css a text indent 9999px 但这行不通 例如 当我使用另一个标签时 p 有用 我也尝试添加
  • ASP.NET Core 模型绑定错误消息本地化

    我正在使用 ASP NET Core 并尝试本地化该应用程序 我设法使用new用于本地化控制器和视图的 asp net core 资源 以及old用于本地化模型验证错误消息的资源 但是 当错误消息未链接到模型字段注释 如 必需 并且模型绑定
  • 从 inotify_event 检索完整路径名

    inotify event 结构如下所示 struct inotify event int wd Watch descriptor uint32 t mask Mask of events uint32 t cookie Unique co
  • 带有 src 和内容的 script-Tag 是什么意思?

    Google 1 按钮的示例 script 标签有一个 src Attributeand内容 这是什么意思以及它是如何工作的 不同的浏览器对此有不同的处理方式 有些仅在以下情况下运行内容 src包含在内 没有错误 有些人在尝试包含以下内容后
  • Python RuntimeWarning:长标量中遇到溢出

    我是编程新手 在我最新的 Python 2 7 项目中 我遇到了以下问题 RuntimeWarning long scalars 中遇到溢出 有人可以详细说明这意味着什么以及我可以做些什么来解决这个问题吗 代码运行完毕 但我不确定忽略警告是
  • UiBinder 小部件中的自定义属性

    我正在为我的应用程序使用 GWT 和 UiBinder 并且我正在尝试这样做
  • orWhereHas - Eloquent 查询上的参数分组 - 如何在 Laravel 中执行此操作?

    在我正在构建的雄辩查询中 我对has使用 Laravel 4 1 的关系whereHas and orWhereHas方法 在示例足球应用程序中 我希望对homeClub and awayClub关系 以便我可以在结果集中选择 homeCl
  • 仅允许在核心图条形图中水平滚动?

    I am using core plot lib to draw bar charts in my app like this 我的问题是我希望仅在水平方向上启用图形移动 以便我可以长时间看到记录 但问题是我只是不想将 y 轴固定在其位置
  • 如何在Android中将菜单设置为工具栏

    我想用ToolBar代替ActionBar 但不要在工具栏中显示菜单 我想要套餐 例如Refresh or Setting按钮ActionBar Toolbar xml代码
  • 用于查找对的压缩矩阵函数

    对于一组观察结果 a1 a2 a3 a4 a5 他们的成对距离 d 0 a12 a13 a14 a15 a21 0 a23 a24 a25 a31 a32 0 a34 a35 a41 a42 a43 0 a45 a51 a52 a53 a5
  • 以编程方式启动 .NET Core Web 应用程序进行 Selenium 测试

    我目前正在尝试在核心 Web 应用程序上设置一些 UI 测试 但是我无法启动该 Web 应用程序 直接使用 Web 应用程序目录中的 dotnet run 命令行即可 当我在执行测试之前尝试使用 Process 运行它时 问题就出现了 没有
  • Math.floor(Math.random() * 5 + 1) 的概念,真实范围是多少,为什么?

    通过将随机数 介于 0 和 1 之间 乘以 5 我们将其设为 0 到 5 之间的随机数 例如 3 1841 Math floor 将此数字向下舍入为整数 并在末尾添加 1 将范围从 0 到 4 更改为 1 到 5 之间 最多 包括 5 上面