gpt4 book ai didi

javascript - 获取随机范围选择的最大值

转载 作者:行者123 更新时间:2023-11-30 16:56:45 25 4
gpt4 key购买 nike

这是我的数组

[0.12, 0.13, 0.3, 0.5, 0.75];

我从这个数组计算总和累积数组:

[ 0.12, 0.25, 0.55, 1.05, 1.8 ]

我从数组中生成介于最小值和最大值之间的随机值:

var randNumber = (Math.random() * (max - min)) + min;

在以下情况下,min=0.12max=1.18

我需要获取随机数所在的累积数组的区间。例如,随机数可以是 1.5948337644897403 然后数字介于 1.05 和 1.8 之间然后我会选择 1.05

问题是数组的最后一个元素从未被挑选出来。如何获取数组的最后一个元素?

最佳答案

问题是您得到的是 minmax 之间的随机值,而且您得到的值低于随机值。被排除的项目实际上是第一个项目,但是因为你得到了错误的项目,所以所有的权重都是错误的,你永远不会得到最后一个项目。

你应该得到一个介于 0 和 max 之间的随机值,否则你将排除数组中的第一项:

var randNumber = Math.random() * max;

然后您应该得到值高于随机数的项目:

var index = arr.length - 1;
while (index > 0 && arr[index - 1] >= randNumber) index--;

这是一个显示权重正确的测试:http://jsfiddle.net/Guffa/kgbL4rsc/

关于javascript - 获取随机范围选择的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29590001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com