【发布时间】:2020-12-08 11:09:09
【问题描述】:
我进行了研究,发现了一般用于小列表的算法。我有一些数组,例如:
arr = [1,2,3,4 .... , 96,97,98,99,100];
arr2 = [105, 110, 165, 170];
arr3 = [1,2,7,8,9];
我想将这些数组发送到一个函数并从这个数组中获取随机数,但我希望每次都有更高的概率获得更大的数字。
比如数组1,96的概率应该大于4,但是97的概率应该大于96。
How to generate a random weighted distribution of elements
通常解决方案类似于本主题。但是,这可能会导致我的数组出现性能问题。
我怎样才能做到这一点?
【问题讨论】:
-
为什么“96应该大于4”,和下一个至少是前任?
-
使用 numpy 或随机模型?numpy.org/doc/stable/reference/random/generated/…
-
数字之间的概率差异应该是多少?它是否应该等同于它们在排序数组中的索引?与
1相比,100被选中的可能性是1的 100 倍? -
@NinaScholz 既然 96 大于 4,它应该更有可能出现。这只是一个例子。
-
@adiga 其实并没有这样的条件或要求。例如,虽然数组 3 中出现 1 的概率是 10%,但出现 9 的概率可能是 30%。这可能会有所不同。
标签: javascript arrays algorithm random