奇趣编程|用随机过程马尔可夫链连续推断抛硬币结果可行吗?

能不能根据当前抛硬币的结果来判断后面连续几次抛硬币的结果?奇趣编程认为,利用随机过程和马尔可夫链的知识,理论上是可以的。

什么是随机过程?随机过程就是一个随机的过程,比如抛硬币这次正面、下次反面、下下次正面、再下下次还是正面,这样的连续的、随机的过程,就是随机过程。那么,今天明天后天大后天下不下雨也是一个随机过程,股票市场的价格曲线也是一个随机过程,人的每天的吃喝拉撒也是一个随机过程。随机过程就是通过统计来对事物进行预测和处理。

什么是马尔可夫链?它也是一种随机过程,用生活中的事例来说明更好理解。比如说,小明每天有三个状态,吃饭、工作、睡觉,通过统计,可以得知不同的状态会分布在不同的时间段,比如说吃饭,大多都在早餐、中餐、晚餐时段,工作大多在工作时段,睡觉也是在大家都休息的时段,这些就是状态分布。

那么根据这个是否可以推断下个月某天某个时段小明是三个状态中的哪个状态?可以的,但得到的是一个概率解,而不是一个精确解,也就是各个状态的可能是多少。

比如说,下个月中午十二点三十分小明的状态,最有可能的状态是吃饭,然后是工作,因为有可能加班延迟,最后是睡觉,一般人很少在这个时间睡觉,即使是休息日也会在这个时间段起床吃饭。

也就是说,各个状态在各个时间段出现的概率基本是不变的,它不会随便转移,比如说,不会有人随便在工作时间睡觉,也不会有多少人会在工作时间吃饭,也很少有人在吃饭时间仍然在睡觉,这个叫做“时齐”。

如果我们知道了各个状态在时间段上的概率分布,即状态分布矩阵,那就可以根据这个概率分布来推断某天某个时段是什么状态了。实际上,马尔可夫链就是不同状态在不同时间段的概率分布。

更多关于概率推断的知识,请关注奇趣编程的其它内容。