値のセットxといくつかの関連する確率のセットがあるとします。N{x_i; i=1,...,N}{w_i; i=1,...,N}
確率に従ってセットから各値を選択することにより、セットからx新しい値のセットを取得します。それをどのようにコーディングしますか(つまり、任意の言語に翻訳できる擬似コードアルゴリズム)。x^N{x^_i; i=1,...,N}x_ixw_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