如何将概率(均匀递增或递减线性分布)分配给一组值
How do I assign a probability (uniform increasing or decreasing linear distribution) to a array of values?
给定X=[1,2,3,4,5,6,7,8,9,10]-,但X可以是任何长度(N(。
我想实现以下目标:
- 我想给第一个值X[0],这是最高的概率
- 我想给第二个值X[1],一个比X[0]小的概率
- 我想给第三个值X[2],一个比X[1]小的概率
- 我想给最后一个值X[N],一个比X[N-1]小的概率
所有概率总和应为1。
为了清晰起见,均匀概率分布(1/(X.length((如下所示:
{1:0.1,2:0.1,3:0.1,4:0.1,5:0.1,6:0.1,7:0.1,8:0.1,9:0.1,10:0.1,}
如果可能的话,javascript的解决方案会很棒。
您可以对指数求和(所有值增加一(,并使用该和来计算概率。
对于反向分布,请反转概率数组。
var add = (a, b) => a + b,
data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
sum = data.length * (data.length + 1) / 2,
probability = data.map((_, i) => (i + 1) / sum),
sumProbability = probability.reduce(add, 0);
console.log(probability);
console.log(sumProbability);
最后一个元素的概率为q,上一个元素为2*q,上个元素为3*q。。。对于第一个是N*q
q + 2 * q + 3 * q +...+(N-1)*q + N * q = 1
q * Sum(1...N) = 1
q * N * (N + 1) / 2 = 1
q = 2 / (N * (N + 1))
所以你可以找到任意序列长度的q,并得到每个元素的概率。N=3 的示例
q = 2 / (3 * 4) = 1/6
概率:
3/6, 2/6, 1/6 Sum = 1
相关文章:
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 在循环中分配json值时,值被覆盖
- 动态分配GA增强型电子商务跟踪器
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 如何在jQuery中将函数的输出分配给变量
- 为集合分配大量的模型弹药
- onclick函数需要双击,因为类分配延迟
- Javascript 将变量分配给警报
- 将节点数据分配给另一个变量jstree
- 如何发送分配列表<字符串>到JavaScript数组或可枚举对象
- Javascript变量分配-按类别
- 如何将内容分配给元素
- 用javascript创建一个看起来正常分布的模式
- 为变量分配多个nodejs导出返回值时出现问题
- Jslint 错误:需要条件表达式,而是看到分配
- 为什么可以't我将检索到的文档分配给控制台中的变量
- 将数组的拼接分配给自身时,Javascript控制台打印不起作用
- 为什么当CRLF被分配到<输入>使用php
- 在Javascript中重新分配对象变量时,原始对象会发生什么
- 如何将概率(均匀递增或递减线性分布)分配给一组值