少年を「嘘つき少年」だと判断するプロセス
説明は後日.... ぬむい
#-*- encoding: utf-8 -*- import numpy as np from pylab import * p_11=.33 #嘘つきの状態のとき「オオカミがくる」といってくる確率 p_12=.67 #嘘つきの状態のとき「オオカミがくる」といってこない確率 p_21=.75 #正直な状態のとき「オオカミがくる」といってくる確率 p_22=.25 #正直な状態のとき「オオカミがくる」といってこない確率 N=100 #シミュレーションの回数 W=[] #確信のプロセス Q=np.random.random_sample(N) #0~1の乱数出力 w_0=.5 #観測者の確信 q1=.5 #実際は嘘である確率割合 #z1:オオカミがやってくるとき def w1_n(w): return (w*p_11)/(w*p_11+(1-w)*p_21) #z2:オオカミがやって来ないとき def w2_n(w): return (w*p_21)/(w*p_21+(1-w)*p_22) if __name__=="__main__": W.append(w_0) #決定者の信念を入力 for i in range(N): #決定者の信念のプロセスを計算 if Q[i] >= q1 : W.append(w1_n(W[i])) else: W.append(w2_n(W[i])) A=[ i for i in range(N+1)] plot(A,W) xlabel("The number of times") ylabel("The probability of the belief") title("Simulation of the Boy Who Cried Wolf") legend() show()