概率,统计学是一门非常有意思的学科,概率的起源从赌博开始的,后面慢慢发展出来了随机过程,鞅论等等。
概率的很多东西和我们的直观感受是有区别的。这里展示一个简单的随机过程的例子。
有四个顶点(0,0),(1,0),(0,1),(1,1)我们从任意一个点开始,向其他几个点移动,向对角线移动的概率是p,向两边移动的概率是(1-p)/2.
问题是从(0,0)点开始,移动n次,重新回到(0,0)点的概率是多少?
答案是:p=1的时候 ,回到原点的概率是0.5,其他的时候概率是0.25
模拟
sims <- function(Start='(0,0)',n=100,p=0.5,H=c('(0,0)','(1,1)')){
vertex <- c('(0,0)','(1,0)','(1,1)','(0,1)')
path <- 0
path[1] <- Start
for (i in 2:n) {
print(i)
if(path[i-1]=='(0,0)'){
path[i] = sample(c('(1,1)','(1,0)','(0,1)'),prob = c(1-p,p/2,p/2),size = 1)
}else if(path[i-1]=='(1,1)'){
path[i] = sample(c('(0,0)','(1,0)','(0,1)'),prob = c(1-p,p/2,p/2),size = 1)
}else if(path[i-1]=='(1,0)'){
path[i] = sample(c('(0,1)','(0,0)','(1,1)'),prob = c(1-p,p/2,p/2),size = 1)
}else if(path[i-1]=='(0,1)'){
path[i] = sample(c('(1,0)','(0,0)','(1,1)'),prob = c(1-p,p/2,p/2),size = 1)
}
}
result <- sum(path %in% H)/n
return(list(path,result))
}
result <- simu(Start = '(0,0)',n = 10000,p = 0.1,H = '(0,0)')
table(result[[1]])
table(result[[1]])/sum(table(result[[1]]))
(0,0) (0,1) (1,0) (1,1)
0.2510 0.2492 0.2499 0.2499
可以看出,从任何一点开始,经过n次,到达任意一点的概率都是0.25
有意思吧
学一学高等概率论与随机过程
网友评论