>>23
# https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1149349046
options(scipen = 32)

# Pk(n) (k=0,1,2,3,4)を途中、5連続して表が出ていなくて
# 最後のk回は連続して表が出ている確率とする。
# P0(1)=P1(1)=1/2、P2(1)=P3(1)=P4(1)=0
# Pk(n+1)=1/2*P(k-1)(n)
# P0(n+1)=1/2*{P0(n)+P1(n)+P2(n)+P3(n)+P4(n)}
# =1/2*{P0(n)+1/2*P0(n-1)+1/4*P0(n-2)+1/8*P0(n-3)+1/16*P0(n-4)}
#
# P0(n)=a(n)/2^nとおいて
# a(n+1)/2^(n+1)=1/2^(n+1){a(n)+a(n-1)+a(n-2)+a(n-3)+a(n-4)}
# a(n+1)=a(n)+a(n-1)+a(n-2)+a(n-3)+a(n-4)

# a(n)=P0(n)*2^n

N=100
K=5
a=numeric(N)
for(i in 1:K) a[i]=2^(i-1)
for(i in K:(N-1)) a[i+1]=a[i]+a[i-1]+a[i-2]+a[i-3]+a[i-4]
P0=numeric(N)
for(i in 1:N) P0[i]=a[i]/2^i
P0

# Pk(n+1)=1/2*P(k-1)(n),
P1=numeric(N)
P1[1]=1/2
for(i in 1:(N-1)) P1[i+1]=1/2*P0[i]
P1

P2=numeric(N)
P2[1]=0
for(i in 1:(N-1)) P2[i+1]=1/2*P1[i]
P2

P3=numeric(N)
P3[1]=0
for(i in 1:(N-1)) P3[i+1]=1/2*P2[i]
P3

P4=numeric(N)
P4[1]=0
for(i in 1:(N-1)) P4[i+1]=1/2*P3[i]
P4

c(1-(P0+P1+P2+P3+P4))[100]

> c(1-(P0+P1+P2+P3+P4))[100]
[1] 0.8101096