javascript - 获取随机数并关注限制(抛物线)

标签 javascript math random max min

我的数学知识可能仅限于自己解决这个问题。我发现了类似的question但是,重点是中心而不是边界。

我想创建具有最大值和最小值的随机数,但重点关注最大值和最小值,因此接近最大值和最小值的数字应该比介于两者之间的数字出现的频率更高。

我记得数学中有一个创建抛物线的函数: enter image description here

并使用这个online tool我生成了我正在寻找的函数,应该类似于

y = 0.05 * x^2

这是我的基本想法,并试图将其转换为 javascript,我最终得到了这个:

for (let i = 0; i < 100; i++) {
  // Create random x with ^ 2 with max=100 and min=0
  let x = Math.pow(Math.floor(Math.random() * (100 - 0 + 1)) + 0, 2);
  // log the random number in the console
  console.log(0.05 * x);
}

但是当然这没有任何实际意义,因为我也可以在控制台中看到(我订购了它们,以便更清楚地看到)

> 0 0
> 0.05
> 0.05
> 0.2
> 0.2
> 0.8
> 2.45
> 3.2
> 3.2
> 3.2
> 4.05
> 4.05
> 4.05
> 6.05
> 8.45
> 8.45
> 14.45
> 16.2
> 16.2
> 16.2 20 20
> 22.05
> 22.05
> 22.05
> 26.45
> 28.8
> 28.8
> 31.25
> 33.8
> 36.45
> 39.2
> 42.05
> 48.05
> 48.05
> 48.05
> 51.2
> 57.8
> 57.8
> 57.8
> 64.8
> 64.8
> 64.8
> 68.45
> 76.05
> 88.2
> 88.2
> 92.45
> 92.45
> 92.45
> 96.8
> 101.25
> 105.8
> 110.45 125
> 130.05
> 130.05
> 135.2
> 140.45
> 140.45
> 145.8
> 145.8
> 145.8
> 156.8
> 162.45
> 162.45
> 162.45 180 180
> 198.45
> 204.8
> 204.8
> 224.45
> 231.2
> 231.2
> 231.2
> 231.2
> 238.05
> 238.05
> 259.2 320 320
> 328.05
> 344.45
> 352.8
> 352.8
> 361.25
> 369.8
> 387.2
> 387.2
> 423.2
> 423.2
> 432.45
> 451.25
> 460.8
> 470.45
> 470.45
> 490.05
> 490.05

有人有想法吗?

最佳答案

要生成具有所需分布的随机数,可以使用 Smirnov 变换 ( inverse sampling )。

要获得抛物线分布,只需对范围 0..1 使用均匀随机生成器并应用平方根。示例应生成 0..100 范围内的值,并且靠近末端的密度更大。

for (let i = 0; i < 20; i++) {
  let x = Math.floor(50 * (Math.pow(Math.Random(), 0.5));
  if (Math.Random() < 0.5) 
      x = 50 - x
  else
      x = 50 + x;
   ...
}

关于javascript - 获取随机数并关注限制(抛物线),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52481830/

相关文章:

regex - Matlab:如何使用稀疏键来访问稀疏数据?

python - 给定数据样本,通过编程推导出近似公式?

python - 如何在字符串中随机大写字符?

python - 在 paretovariate() 函数中添加位置参数

javascript - 使用backbone.js应用程序实现可视化加载器栏

javascript - 如何使用 JavaScript 获取文本区域标记中提供的输入?

javascript - React-Navigation:每当页面导航到时调用函数

java - 求 pi 的值直到 50 位

Python - 从列表中选择随机对象

javascript - 循环浏览图像直到悬停 jquery