生成指定范围内的随机数 - 各种情况(int、float、inclusive、exclusive)

2024-01-20

given a Math.random()返回 [0,1) 之间的数字的函数min max值来指定范围,我们如何为以下情况生成数字:

我们想要的案例integer:

  • A: (min,max) ?
  • B: [min,max) return Math.floor(Math.random() * (max - min)) + min;
  • C: (min,max] ?
  • D: [min,max] return Math.floor(Math.random() * (max - min + 1)) + min;

我们想要的案例float:

  • A: (min,max) ?
  • B: [min,max) return Math.random() * (max - min) + min;
  • C: (min,max] ?
  • D: [min,max] ?

Integers你的 B. 公式是正确的,其他一切都是通过微不足道获得的+1 -1更正:

  • A. (min, max) = [min + 1, max),因此从 B. 我们得到min + 1 + Math.floor(Math.random() * (max - min - 1))
  • B. min + Math.floor(Math.random() * (max - min))
  • C. 由于在区间算术中(min, max] = max - [0, max - min),也可以写max - Math.floor(Math.random() * (max - min))
  • D. [min, max] = [min, max + 1), 所以:min + Math.floor(Math.random() * (max + 1 - min))

Floats.正如 V13 已经指出的那样,这个问题有点不恰当:如果我们将单个点视为零测度集,则四个集合之间几乎(在测度理论意义上)没有差异......但是,如果你想保证排除的区间边界永远不会(不仅仅是“几乎永远不会”)被采样,如果你假设没有舍入错误,你可以这样做:

  • A: var middle = (min + max) / 2; var sign = Math.random() > 0.5 ? 1 : -1; return middle + sign * (max - min) / 2 * Math.random();这个解决方案增加了一点点质量0,但这对于所有实际目的来说应该可以忽略不计。

  • B: min + Math.random() * (max - min), yes.

  • C: max - Math.random() * (max - min),与上式对称。
  • D:不可能保证我们曾经达到区间上限,所以我们可以使用min + Math.random() * (max - min).

A 和 D 之间的区别如下:如果我们尝试使用公式min + Math.random() * (max - min)在 A 中,我们偶尔可能会得到0(因为可能的数字范围实际上是有限的)。然而,没有任何合理的统计数据可以抱怨 D 没有达到上限。

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

生成指定范围内的随机数 - 各种情况(int、float、inclusive、exclusive) 的相关文章

  • 检查用户是否连接到 Facebook,然后检查他是否喜欢某个页面

    有没有什么方法可以检查用户是否在我的外部页面上连接到 Facebook 而不让他们允许我的应用程序之一 同样的问题也适用于 检查用户是否喜欢某个页面 我检查了大约 20 个问题和 3 4 个教程 似乎所有问题都在讨论内部脚本 粉丝页面 应用
  • 您可以使用 JavaScript 触发自定义 HTML5 表单错误吗?

    如果我有一个像这样的输入
  • AngularJS 使用 $apply 而不使用 $scope

    我开始使用 AngularJS 并且接受了用它来编写控制器的约定 而不是用 scope 所以我的控制器看起来像这样 myApp controller SomeController function this myModel id 1 nam
  • 通过 SVG 背景传递鼠标事件

    我有两个 SVG 元素 每个元素覆盖整个屏幕 html body height 100 svg position absolute top 0 left 0 bottom 0 right 0
  • Google 饼图未显示所有数据行

    我正在尝试绘制人口与国家名称的关系图 我发现 Google 可视化库仅渲染前几个 实际上数字似乎是随机的 具体取决于我使用的数据 有时添加 其他 条目 但它没有t 实际上具有其余条目的值 Example 1 With all countri
  • 来自 DataURL 的 Blob?

    Using FileReader s readAsDataURL 我可以将任意数据转换为数据 URL 有没有办法将数据 URL 转换回Blob使用内置浏览器 API 的实例 用户 Matt 一年前提出了以下代码 如何在javascript中
  • 是否可以将反应组件导出为非反应项目中的函数

    有没有办法在非 React 项目中将 React 组件导出为函数并传入 props 作为函数的参数 我最近用 create react app 完成了一个 React 项目 现在我想将它用于其他非 React 项目 纯 Javascript
  • 在 Angular2 项目中集成 Treant-js

    我正在尝试在 Angular2 项目中使用 treant js 但我正在努力解决如何正确集成它的问题 我有一个工作正常的 JavaScript HTML 示例 我正在尝试在 Angular2 中工作 我创建了一个组件 从 npm 添加了 t
  • 使用C标准数学库精确计算标准正态分布的PDF

    The probability density function of the standard normal distribution is defined as e x2 2 2 This can be rendered in stra
  • Bing.com 如何创建放大的缩略图?

    当我使用 Bing com 搜索图像时 我发现它们的图像经过精心裁剪和排序 当您将鼠标放在图像上时 会弹出另一个窗口 其中显示放大的图像 我想在我的程序中做同样的事情 我检查了他们页面的源代码 他们正在使用 javascript 但我仍然不
  • jQuery Blur() 在 Chrome 上不起作用

    我在 MacOSX 上运行这个http jsfiddle net q84wv http jsfiddle net q84wv on Chrome最新版本 它不会工作 在 Firefox 上运行时它工作得很好 有什么线索吗 假设您想要aler
  • 空 URL 哈希导致页面在 js 事件上跳转

    我有一个带有下一个和上一个按钮的照片库 如果我的某个 javascript 方法由于某种原因被破坏 那么当单击其中一个按钮时 它会向 url 添加一个哈希值 即 www google com 我知道可以给散列一个 div id 来跳转到页面
  • 使用 onBlur 事件上的值更新 React 输入文本字段

    我有以下输入字段 在模糊时 该函数调用服务来更新服务器的输入值 完成后 它会更新输入字段 我怎样才能让它发挥作用 我可以理解为什么它不允许我更改字段 但我能做些什么才能使其工作 我无法使用defaultValue因为我会将这些字段更改为其他
  • Window 与 Var 声明变量[重复]

    这个问题在这里已经有答案了 可能的重复 JavaScript 中使用 var 和不使用 var 的区别 https stackoverflow com questions 1470488 difference between using v
  • Javascript 选择 onchange='this.form.submit()'

    我有一个带有选择和一些文本输入的表单 我希望在更改选择时提交表单 使用以下方法可以正常工作 onchange this form submit 但是 如果表单还包含提交按钮 则当选择更改时 表单不会提交 我猜有某种冲突 我在这里有什么选择
  • 如何在 angularjs 中修剪()字符串?

    有角度特定的方法吗 如果没有 我应该使用内置的jquery 来做到这一点吗 如果我应该使用内置的jquery 如何在不使用 的情况下访问trim 函数 或者这是必要的 编辑 是的 我知道 str trim 对不起 我需要这个才能在 IE 8
  • RTCDataChannel发送方法不发送数据

    我的 RTCDataChannel 遇到一个奇怪的问题 我正在对 WebRTC 进行一些研究 并且已经可以进行 WebRTC 音频 视频聊天 现在我想使用 RTCDataChannel 添加文本聊天和文件共享 我已经像这样创建了 RTCDa
  • 如何在 JavaScript 中获取浮点数的小数位?

    我想要的是与 Number prototype toPrecision 几乎相反的 这意味着当我有数字时 它有多少位小数 例如 12 3456 getDecimals 4 对于任何想知道如何更快地完成此操作 无需转换为字符串 的人 这里有一
  • 使用 jquery 提供附加功能时菜单未正确对齐

    I need to make a mega menu similar to one as show in image below 到目前为止 我已经能够在某种程度上使其发挥作用 例如jsFiddle 在这里 http jsfiddle ne
  • FullCalendar 检查选择日是否有活动?

    我正在使用 Full Calendar js 插件 到目前为止一切顺利 但我想检查开始和结束之间的选择是否有事件 我只需要返回 true 或 false 基本上 如果日期选择中已经存在事件 我想阻止用户创建事件 var calendar c

随机推荐

  • 如何使用Python找到any()中匹配的内容?

    我正在用Python工作 使用any https docs python org 2 library functions html any像这样寻找 a 之间的匹配String 数组和从 Reddit API 中提取的评论 目前 我正在这样
  • 保持 GH 主页与 README.md 同步

    在为我的项目创建 GitHub Pages 时 建议我导入现有的README md作为项目的主页 后来我合并了gh pages with master并最终得到了两者index html and README md 问题 是更新README
  • 隐藏链接到 .so 文件的第 3 方 .a 文件中的符号

    我正在构建一个共享 so 库 该库由多个 a 文件和调用它们的瘦 API 层组成 我只希望我的 API 和外部依赖项可见 因此我使用 GCC 提供的 隐藏 可见性构建代码 fvisibility hidden 然而 其中一个库是专有的第三方
  • 什么是 mdspan,它的用途是什么?

    在过去的一年左右的时间里 我注意到 StackOverflow 上有一些与 C 相关的答案 请参考mdspan s 但我从未在 C 代码中真正见过这些 我尝试在我的 C 编译器的标准库目录和C 编码指南 http isocpp github
  • 为什么 std::map(以及 STL 中的其他关联容器)上没有 front() 方法?

    The STL参考 http www cplusplus com reference stl 似乎在概念上有所不同 一方面是 序列容器 数组向量双端队列前向列表列表 另一方面 关联容器 设置多重集映射 multimap unordered
  • iOS 中如何保存数据

    我正在制作游戏 当我关闭应用程序 在多任务管理器中关闭 时 我的所有数据都消失了 所以 我的问题很简单 我如何保存数据 假设您要保存分数和级别 它们都是名为 dataHolder 的对象的属性 DataHolder 可以创建为单例 因此您不
  • 将 Crystal Reports 连接到 SQL Server

    所以我进入了 数据库专家 但我似乎不知道如何将数据库添加到报告中 有任何想法吗 附 我正在使用 CR 13 和 SQL Server 2012 我们正在使用 CR 11 R2 我不确定 CR 2013 的选项是否已更改 但在 CR 11 R
  • JavaScript 对象使用 .检索值[重复]

    这个问题在这里已经有答案了 可能的重复 如何使用动态键访问对象 https stackoverflow com questions 6921803 how to access object using dynamic key 我有多个具有不
  • Spring:类文件版本错误 61.0,应该是 55.0

    我正在使用 Java 11 的 Maven 和 IntelliJ IDEA 上的 Maven 我正在尝试创建一个 JsonTset 类 如下所示 import org junit BeforeClass import org junit T
  • Jersey - 有没有办法用参数实例化每个请求资源?

    假设我有这样的课程 Path test public class TestResource private TestService testService public TestResource TestService testServic
  • 如何解决 Argo 输出参数大小限制?

    我有一个在 JSON 数组上循环的 Argo 工作流程 当列表变得太大时 我会收到如下错误 time some time level fatal msg Pod some pod name is invalid metadata annot
  • MongoDB 副本集状态未从启动更改为辅助

    我已经设置了一个包含 3 个节点的 MongoDB 副本集 虚拟机运行 CentOS 一个节点成为主节点 另外 2 个节点陷入启动状态 当这两个节点将其状态从启动更改为辅助时 aryabhata PRIMARY gt rs status s
  • Python:使用 lineno 引发语法错误

    我正在为特定于域的语言实现一个解析器 并且希望能够引发语法错误 引发此异常时如何设置文件名 行号和偏移量 例外 语法错误 当解析器遇到语法时引发 错误 这可能发生在 import 语句 exec 语句 调用内置函数 eval 或 input
  • 树枝变量中的树枝变量

    我有一个树枝变量html 为了在树枝模板中显示它 我这样做 html 该变量看起来像 div region top div div region center div region 也是一个变量 当 Twig 解析我的html变量 它不解析
  • 检测 jQuery 中 input[type=text] 的值变化

    我想在每次特定输入框的值发生变化时执行一个函数 它almost与 input keyup function 但是例如 将文本粘贴到框中时什么也不会发生 input change function 仅在输入模糊时触发 那么我如何立即知道文本框
  • GCC 相当于 MS 的 /bigobj

    我们正在大量使用boost serialization和一般模板 一切似乎都很顺利 不过 我们在 Windows 构建上遇到了障碍 这似乎会导致目标文件太大的问题 我们使用 MinGW Msys 和 g 4 7 0 c mingw bin
  • Flutter 删除所有路由

    我想开发一个注销按钮 它将把我发送到登录路线并从登录路线中删除所有其他路线Navigator 该文档似乎没有解释如何制作RoutePredicate或具有任何类型的removeAll 功能 我能够使用以下代码来完成此操作 Navigator
  • 我可以将参数传递给 rake db:seed 吗?

    我的一部分seeds rb将大量数据加载到数据库中 我希望能够有选择地加载这些数据 例如 rake db seed or rake db seed 0 只会加载运行网站所需的数据 而 rake db seed 1 也会将我的大数据文件加载到
  • Ember 数据无法读取未定义的属性“async”

    将 Ember v1 8 beta 3 与 Ember Data 1 0 beta 10 一起使用 您会收到以下错误 Error while processing route index Cannot read property async
  • 生成指定范围内的随机数 - 各种情况(int、float、inclusive、exclusive)

    given a Math random 返回 0 1 之间的数字的函数min max值来指定范围 我们如何为以下情况生成数字 我们想要的案例integer A min max B min max return Math floor Math