少年を「嘘つき少年」だと判断するプロセス

説明は後日.... ぬむい

#-*- 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()