首先
马尔可夫链,是指数学中具有马尔可夫性质的离散事件随机过程。该过程中,在给定当前知识或信息的情况下,对于预测将来会发生什么,发生的概率是多少。
算法实现原理
本文章讲述的是如何使用JAVA来简单的实现马尔科夫链算法,相比于现有的C、C++算法,使用JAVA实现马尔科夫链算法比较的简单,其原因在于JAVA里可以使用List数组代替C、C++里的链表、指针,操作起来相对的简单。
马尔科夫链算法的实现原理,是通过统计原有的数据以及它们发生的概率,从而通过概率的大小来判断未来会发生什么,有多大的概率,其过程可以用下面的图片简单描述:
矩阵1
矩阵2
上图中矩阵2由矩阵1变化而得,及其过程可以简答的理解为由1→1,2→3,3→2,1→1···依次类推,马尔科夫算法即通过统计这个过程,即1→1的次数和概率,预测矩阵3中(将由矩阵2推出矩阵3)1转换为哪个数字的概率最大,从而达到预测的功能。
程序实现
首先是新建两个数组,这里使用的Object类型的List数组