実施したいこと
確率$\epsilon, (0 \le \epsilon \le 1)$でランダムに1を出力する
コード
import numpy.random import *
## 0~1までの乱数を設定
tmp = rand()
if tmp <= epsilon:
output = 1
else:
output = 0
print(output)
とすれば、output
に確率$\epsilon$で$1$が入りますが、(library importを除き)1行で完結するには
import numpy as np
output = np.random.binomial(1,epsilon)
でOK.
検証
念のため、やっときましょう。
epsilon = 0.2
N = 100
tmp_list = []
for i in range(N):
a = np.random.binomial(1, epsilon)
tmp_list.append(a)
print(sum(tmp_list)/N) #0.22
みなさんもepsilon
を他の値にかけてやってみて下さい。
ただ、サンプル数$N$が小さいと、結構ブレてしまうのは注意です。