游戏面试题-武器升级

简介:

一把武器,最低是1级,最高可以升到9级,每次升级成功率30%,失败率70%。失败会退一级,在1级的时候如果失败则仍然为1级。问:该武器从1级升到9级的所需次数的期望?

 

记从第k-1级升到第k级所需次数的期望是E_k。

 

假设武器处于k级,那么从k级升到k+1所需次数的期望E_(k+1) 如何求呢? 分为两种情况:

(1)、从k到k+1第一次成功,概率是0.3,所需次数是1                        本文地址

(2)、第一次不成功,退回到了k-1级,概率是0.7,这时需要先从k-1上升到k(需要的次数期望是E_k),再从k上升到k+1(需要的次数期望是E_(k+1)),总的所需次数是 E_k + E_(k+1) + 1。

 

根据期望的计算公式可以得到: E_(k+1) = 0.3*1 + 0.7*(E_k + E_(k+1) + 1)

上式化简为:0.3E_(k+1) = 0.7E_k + 1

作简单变换可得:0.3(E_(k+1) + 2.5) = 0.7(E_k + 2.5)

很明显E_k+2.5 是等比数列,可以很容易求得E_k的通项公式。

那么最终从1级上升到9级所需次数期望 = E_2 + E_3 + E_4 + … + E_9, 可以根据等比数列求和公式求得。






本文转自tenos博客园博客,原文链接:http://www.cnblogs.com/TenosDoIt/p/4045786.html,如需转载请自行联系原作者

目录
相关文章
|
5月前
|
决策智能
集合-Nim游戏(面试hard博弈论)
集合-Nim游戏(面试hard博弈论)
|
4月前
|
Java 程序员
【面试官】知道synchronized锁升级吗
线程A获取了某个对象锁,但在线程代码的流程中仍需再次获取该对象锁,此时线程A可以继续执行不需要重新再获取该对象锁。既然获取锁的粒度是线程,意味着线程自己是可以获取自己的内部锁的,而如果获取锁的粒度是调用则每次经过同步代码块都需要重新获取锁。此时synchronized重量级锁就回归到了悲观锁的状态,其他获取不到锁的都会进入阻塞状态。来获得锁,CAS操作不需要获得锁、释放锁,减少了像synchronized重量级锁带来的。轻量级锁通过CAS自旋来获得锁,如果自旋10次失败,为了减少CPU的消耗则锁会膨胀为。
119 4
|
5月前
|
Python
最新用Python做一个变态版的《超级玛丽》游戏,面试必备知识点
最新用Python做一个变态版的《超级玛丽》游戏,面试必备知识点
最新用Python做一个变态版的《超级玛丽》游戏,面试必备知识点
|
4月前
|
存储 算法 数据挖掘
力扣174题动态规划:地下城游戏(含模拟面试)
力扣174题动态规划:地下城游戏(含模拟面试)
|
5月前
|
安全 Java 程序员
【Java多线程】面试常考——锁策略、synchronized的锁升级优化过程以及CAS(Compare and swap)
【Java多线程】面试常考——锁策略、synchronized的锁升级优化过程以及CAS(Compare and swap)
51 0
|
5月前
|
算法 索引
【力扣经典面试题】55. 跳跃游戏
【力扣经典面试题】55. 跳跃游戏
|
5月前
|
算法 测试技术 索引
【力扣经典面试题】45. 跳跃游戏 II
【力扣经典面试题】45. 跳跃游戏 II
|
5月前
|
SQL 数据挖掘 数据处理
「SQL面试题库」 No_58 游戏玩法分析 V
「SQL面试题库」 No_58 游戏玩法分析 V
|
5月前
|
SQL 数据挖掘 数据处理
「SQL面试题库」 No_17 游戏玩法分析 II
「SQL面试题库」 No_17 游戏玩法分析 II
|
5月前
|
SQL 数据挖掘 数据处理
「SQL面试题库」 No_16 游戏玩法分析 I
「SQL面试题库」 No_16 游戏玩法分析 I