概率论 您所在的位置:网站首页 概率论做题常用方法 概率论

概率论

#概率论| 来源: 网络整理| 查看: 265

概率论——马尔科夫链

马尔科夫链是一个随机过程,包含一些状态和转移概率,对于每一个状态,我们都知道由这个状态向其他状态转移的概率是多少。

例如,我们考虑处在一个 n n n层楼的一楼,每次我们都有同等概率的上楼或下楼,除非处在一楼或者顶楼。那么 k k k步之后处于 m m m层的概率是多少?

如果 n = 5 n=5 n=5,每一层楼都是一个状态的话,对应的马尔科夫链为:

Markov 我们定义向量 V k = [ p 1 , p 2 , … , p n ] V_k=[p_1,p_2,\ldots,p_n] Vk​=[p1​,p2​,…,pn​],为经过 k k k步之后,处在 i i i层 p i p_i pi​的概率向量。

每一个马尔科夫链都对应一个递推矩阵 T T T,使得 V k = T V k − 1 V_k = T V_{k-1} Vk​=TVk−1​。

例如上述马尔科夫链就可以转换为:

Matrix

例题

P3758

#include using namespace std; #define FR freopen("in.txt", "r", stdin) #define FW freopen("out.txt", "w", stdout) typedef long long ll; ll mod = 2017; struct Matrix { ll arr[35][35]; int n; Matrix(int N) { n = N; for (int i = 1; i Matrix ans(a.n); for (int i = 1; i if (e & 1) ans = ans * a; } return ans; } int main() { int n, m; scanf("%d %d", &n, &m); Matrix T(n + 1); for (int i = 1; i T.arr[i][i] = 1; T.arr[n + 1][i] = 1; } T.arr[n + 1][n + 1] = 1; ll t; scanf("%lld", &t); T = fpow(T, t); ll ans = 0; for (int i = 1; i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有