値のセットx
といくつかの関連する確率のセットがあるとします。N
{x_i; i=1,...,N}
{w_i; i=1,...,N}
確率に従ってセットから各値を選択することにより、セットからx
新しい値のセットを取得します。それをどのようにコーディングしますか(つまり、任意の言語に翻訳できる擬似コードアルゴリズム)。x^
N
{x^_i; i=1,...,N}
x_i
x
w_i
編集:Pythonコード:
def resample(self,x,w):
N = len(w)
new_x = empty(N)
c = cumsum(w)
for i in range(N):
r = random()
for j in range(N):
if( j == N-1 ):
new_x[i] = x[j]
break
else:
if( (c[j] <= r) and (r < c[j+1]) ):
new_x[i] = x[j+1]
break
new_w = ones(N,dtype=float)/N
return new_x, new_w