例题一:带陷阱的棋盘期望步数
题目描述
有一个长度为 的棋盘,起点在1号格,每次可以掷骰子前进1~6步。如果踩到棋盘上的某些“陷阱格”,就会直接回到起点。问:从起点出发到终点的期望步数。
1. 状态定义
- :从第 格到终点的期望步数
2. 状态转移
每次可以前进1~6步,每种情况概率 。 如果 是陷阱,就会直接回到1号格,否则就前进到 。
所以:
边界条件:(到终点不需要再走)
3. 思路要点
-
需要特殊判断“陷阱”,状态转移会“跳回头”,增加难度。
-
可以用类似前面的方法自底向上递推。
例题二:青蛙跳格子的概率(带障碍)
题目描述
有一条 格的路,青蛙在1号格,每次等概率跳1~2步。有的格子上有障碍,跳到障碍会死掉(结束)。问:青蛙能活着跳到终点的概率是多少?
1. 状态定义
- :青蛙从第 格活着跳到终点的概率
2. 状态转移
-
如果 是障碍,
-
如果 ,(终点)
-
否则:
3. 思路要点
-
障碍格直接判为0。
-
其余状态正常转移。
-
多一步判断条件而已。
例题三:有保底的抽卡期望
题目描述
某游戏抽卡,单抽出 SSR 概率为 ,连续抽 次没出,下一次必定出(即“保底”)。问:期望抽到SSR所需的抽卡次数是多少?
1. 状态定义
- :已经连续失败了 次,接下来抽到SSR的期望次数。
2. 状态转移
-
当 :保底了,必出,
-
时:
-
本轮抽中 SSR(概率 ):1次结束
-
没抽中(概率 ):又多抽一次,失败数 +1,变成
-
3. 求解方式
可以递推,也可以递归+记忆化。实际写代码时从 往前递推到 0,就是期望所需次数。
例题四:两人博弈胜利概率
题目描述
两人轮流投硬币,谁先正面朝上谁赢。每次投正面概率 。问:第一个人获胜的概率是多少?
1. 状态定义
- :当前轮到你时,你获胜的概率
2. 状态转移
-
你这轮投到正面,直接赢,概率 。
-
没投到,轮到对手,对手也有同样的策略,所以概率是 。
解这个方程即可。
例题五:随机走格子的期望
题目描述
有一个N*N的棋盘,每一步等概率向上下左右走,不能走出边界。问:从左上角走到右下角的期望步数是多少?
1. 状态定义
- :从点 走到终点的期望步数
2. 状态转移
对于每个方向都要考虑边界条件。
其中 是有效方向数。
总结
常见概率DP考点:
-
期望步数/次数型(带障碍、带保底等)
-
到达终点概率型(路径有生死、博弈等)
-
棋盘型/二维DP
-
动态状态转移、嵌套概率、循环依赖
