我有一个连续的有序数据结构(基于0的索引):

x= [1/3, 1/3, 1/3]

假设我选择了索引1,并将概率增加1/3。其余概率每种概率减少1/6,总概率保持p = 1。

x= [1/6, 2/3, 1/6]

假设我选择了索引2,并将概率提高了1/3。总概率总需求减少1/3,以使总概率保持p = 1。

x= [1/10, 2/5, 1/2]

这种数据结构是否有名称?我想研究该名称并使用库,而不是我的自定义滚动代码。

有帮助吗?

解决方案

数组$ a $和附加变量$ m $可以很容易地实现这一点。输入$ a [i] $存储$ i $ times $ m $的可能性。

在您的示例中,您从

A=[1,1,1], m=3

您将第二个元素的概率增加1/3。这可以通过设置$ a [2] = 4 $和$ m = 6 $来执行

A=[1,4,1], m=6

通常,您可以通过求解系统$$ sum_i a [i] = m text {and} a [k] = p cdot m,$$,将元素$ k $的概率设置为$ p $ $ a [k] $和$ m $。

因此,您需要做的就是将$ m $设置为$$ m = frac { sum_ {i neq k} a [i]} {1-p},$$和$ a [k] = p p 新$ m $的CDOT M $。

许可以下: CC-BY-SA归因
不隶属于 cs.stackexchange
scroll top