飞行棋【期望dp】

这篇博客介绍了如何解决飞行棋从n号点移动到0号点的期望回合数问题。通过数学分析,得出在[1, d-1]区间内的期望E=d-1,并给出[d, n]区间的状态转移方程,最终实现O(n)的时间复杂度解决方案。" 4322600,618191,Tomcat到WebLogic移植问题及解决,"['weblogic', 'tomcat', '应用服务器']
摘要由CSDN通过智能技术生成

>Link

牛客1027普及T4


>Description
有一个 [ 0 … ∞ ] [0…∞] [0]的格子,有一颗飞行棋初始时在n号点上,目标让飞行棋到达0号点
进行一次操作等概率地得到1~d中的一个数x,对于每一个回合:

  1. 进行一次操作得到一个数x
  2. 飞行棋向左移动x步。如果移动的过程中飞行棋到达了0,就向右移动,其他情况飞行棋一直保持向左移动
  3. 如果x=d,再从步骤1开始做,直到x≠d

求从n到0的回合数的期望


>解题思路
我们可以把0~n的这条路分成: 0 0 0 [ 1 , d − 1 ] [1,d-1] [1,d1] [ d , n ] [d,n] [d,n]

对于 [ 1 , d − 1 ] [1,d-1] [1,d1]:设当前位置为 p p p。我们可以知道
x = p x=p x=p时,飞行棋直接到达0结束,不考虑这种状态;
x ≠ p x≠p x=

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Scratch飞行棋是一种在Scratch编程平台上制作的飞行棋游戏。飞行棋是一种非常经典的棋类游戏,玩家通过掷骰子并将自己的棋子移动到目标点以取得胜利。 在Scratch飞行棋游戏中,玩家首先需要选择角色和棋子颜色,然后开始游戏。玩家通过点击骰子来掷骰子,并通过将骰子的字添加到棋子所在方格的标签中来移动棋子。每位玩家必须按照骰子的字移动对应步。如果玩家的棋子停在与其它玩家的棋子相同的方格上,那么该棋子将被驱逐回起始位置。 游戏中有一些特殊的方格,它们具有不同的功能。例如,起飞点可以将玩家的棋子从起始位置移动到指定的方格上;遇机会卡时,玩家需要按照卡牌的指示执行相应的动作,如前进或后退;遇到彩虹桥时,玩家可以跳过一些方格,以更快地到达目标点。 游戏目标是让自己的棋子尽快地到达终点。当一个玩家的棋子到达终点时,他就赢得了比赛。游戏可以有两个或更多的玩家参与,每个玩家依次轮流掷骰子并移动棋子。 通过制作和玩Scratch飞行棋,玩家可以学习到很多编程概念,如变量、控制语句和事件处理等。此外,他们还可以锻炼自己的逻辑思维和决策能力。 总的来说,Scratch飞行棋是一种有趣和有教育意义的游戏,适合小朋友和初学者。通过这个游戏,玩家可以在编程的过程中体验游戏的乐趣,并进一步提升自己的编程技能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值