游戏设计中的算法题——计算宝物升级所需的资源数
當(dāng)今社會,智能手機(jī)的飛速發(fā)展。使得可以做到人手一部智能手機(jī)。而各種應(yīng)用層出不窮。
手游(手機(jī)游戲)的出現(xiàn),滿足了人們對打發(fā)碎片時(shí)間的需求。
?
而在游戲中,寶物升級是最常見的劇情元素之一。而優(yōu)秀的游戲設(shè)計(jì)師,在設(shè)計(jì)寶物升級系統(tǒng)時(shí),要難易適中,要能把用戶黏合在自己的游戲中,既不能太難,也不能太簡單。那么如何設(shè)計(jì)寶物升級中的各項(xiàng)參數(shù)就是重中之重。
?
本文重點(diǎn)介紹,給定寶物的設(shè)計(jì)系統(tǒng)的各項(xiàng)參數(shù),計(jì)算寶物升級所需的資源數(shù)。
?
問題:
某寶物初始是0級,現(xiàn)在要升級
從0級升到1級,所需的資源數(shù)為1,成功概率為90%,成功升1級,失敗還是0級;
從1級升到2級,所需的資源數(shù)為2,成功概率為80%,成功升1級,失敗降1級,降為0級;
從2級升到3級,所需的資源數(shù)為3,成功概率為70%,成功升1級,失敗降1級,降為1級;
從3級升到4級,所需的資源數(shù)為4,成功概率為60%,成功升1級,失敗降1級,降為2級;
從4級升到5級,所需的資源數(shù)為5,成功概率為50%,成功升1級,失敗降1級,降為3級;
問:某寶物從0級升級到5級,所需要的資源數(shù)平均是多少?
?
定義一個(gè)函數(shù)F(N,M),M≥N。表示該寶物從N級升級到M級所需的平均資源數(shù)。本題中就是計(jì)算F(0,5)
很明顯
F(N,N)=0;即F(0,0)=0,F(1,1)=0
F(N,M)=F(N,K)+F(K,M),N≤K≤M,F(0,4)=F(0,2)+F(2,4),即F(2,4)=F(0,4)-F(0,2)
?
用簡便表示函數(shù)F(N),即F(N)=F(0,N),那么本題就是計(jì)算F(5)
?
定義PN,為從N-1級升到N級的成功的概率
本題中,P1=0.9,P2=0.8,P3=0.7,P4=0.6,P5=0.5
定義LN,為從N-1級升到N級所需的資源數(shù)
本題中,N1=1,N2=2,N3=3,N4=4,N5=5
?
言歸正傳,下面分析如何計(jì)算F(N)
先分析F(1)
從0級升到1級,所需的資源數(shù)為L1。其中(1-P1)的會失敗,還是停留在0級,這些還是需要從0級升到1級。那么,就有個(gè)分析公式
F(1)=L1+(1-P1)×F(1)
F(1)=L1÷P1=1÷0.9=1.111
?
再分析F(2)
從1級升到2級,所需的資源數(shù)為L2。其中(1-P2)的會失敗,降級到0級,這些還是需要從0級升到2級。那么,就有個(gè)分析公式
F(2)=F(1)+L2+(1-P2)×F(2)
F(2)=(F(1)+L2)÷P2=(1.111+2)÷0.8=3.889
?
再分析F(3)
從2級升到3級,所需的資源數(shù)為L3。其中(1-P3)的會失敗,降級到1級,這些還是需要從1級升到3級。那么,就有個(gè)分析公式
F(3)=F(2)+L3+(1-P3)×F(1,3)
F(3)=F(2)+L3+(1-P3)×(F(3)-F(1))
F(3)=(F(2)+L3-(1-P3)×F(1))÷P3
F(3)=(3.889+3-(1-0.7)×1.111)÷0.7=9.365
?
再分析F(4)
從3級升到4級,所需的資源數(shù)為L4。其中(1-P4)的會失敗,降級到2級,這些還是需要從2級升到4級。那么,就有個(gè)分析公式
F(4)=F(3)+L4+(1-P4)×F(2,4)
F(4)=F(3)+L4+(1-P4)×(F(4)-F(2))
F(4)=(F(3)+L4-(1-P4)×F(2))÷P4
F(4)=(9.365+4-(1-0.6)×3.889)÷0.6=19.682
?
再分析F(5)
從4級升到5級,所需的資源數(shù)為L5。其中(1-P5)的會失敗,降級到3級,這些還是需要從3級升到5級。那么,就有個(gè)分析公式
F(5)=F(4)+L5+(1-P5)×F(3,5)
F(5)=F(4)+L5+(1-P5)×(F(5)-F(3))
F(5)=(F(4)+L5-(1-P5)×F(3))÷P5
F(5)=(19.682+5-(1-0.5)×9.365)÷0.5=39.999
?
?
結(jié)論是
從0級升到1級,平均所需的資源數(shù)為P(1)=1.111
從0級升到2級,平均所需的資源數(shù)為P(2)=3.889
從0級升到3級,平均所需的資源數(shù)為P(3)=9.365
從0級升到4級,平均所需的資源數(shù)為P(4)=19.682
從0級升到5級,平均所需的資源數(shù)為P(5)=39.999
?
下面是通過計(jì)算機(jī)模擬寶物升級的過程,并做了統(tǒng)計(jì),再求平均數(shù)。一共做了五組,每組1000000次。
?
| ? | 理論值 | 第1組 | 第2組 | 第3組 | 第4組 | 第5組 |
| P(1) | 1.111 | 1.111 | 1.111 | 1.111 | 1.111 | 1.111 |
| P(2) | 3.889 | 3.889 | 3.890 | 3.890 | 3.889 | 3.889 |
| P(3) | 9.365 | 9.367 | 9.365 | 9.368 | 9.363 | 9.364 |
| P(4) | 19.682 | 19.685 | 19.690 | 19.692 | 19.681 | 19.682 |
| P(5) | 39.999 | 40.000 | 40.002 | 40.001 | 39.996 | 39.988 |
?
從上表的數(shù)據(jù)來看,理論值和實(shí)際統(tǒng)計(jì)值差別不大了。說明我們分析的理論值是合理的。
?
綜述:
F(1)=L1÷P1
F(N)=(F(N-1)+LN-(1-PN)×F(N-2))÷PN,當(dāng)N≥2時(shí)。
?
再給一題:
某寶物初始是0級,現(xiàn)在要升級
從0級升到1級,所需的資源數(shù)為1,成功概率為100%,成功升1級;
從1級升到2級,所需的資源數(shù)為2,成功概率為85%,成功升1級,失敗不降級;
從2級升到3級,所需的資源數(shù)為3,成功概率為75%,成功升1級,失敗不降級;
從3級升到4級,所需的資源數(shù)為4,成功概率為65%,成功升1級,失敗不降級;
從4級升到5級,所需的資源數(shù)為5,成功概率為55%,成功升1級,失敗降1級,降為3級;
從5級升到6級,所需的資源數(shù)為6,成功概率為45%,成功升1級,失敗降1級,降為4級;
從6級升到7級,所需的資源數(shù)為7,成功概率為35%,成功升1級,失敗降1級,降為5級;
從7級升到8級,所需的資源數(shù)為8,成功概率為25%,成功升1級,失敗降1級,降為6級;
從8級升到9級,所需的資源數(shù)為9,成功概率為20%,成功升1級,失敗降1級,降為7級;
從9級升到10級,所需的資源數(shù)為10,成功概率為15%,成功升1級,失敗降1級,降為8級;
問:某寶物從0級升級到10級,所需要的資源數(shù)平均是多少?
?
你的答案是多少?我的答案是7763.564285
轉(zhuǎn)載于:https://www.cnblogs.com/grenet/p/4303266.html
超強(qiáng)干貨來襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的游戏设计中的算法题——计算宝物升级所需的资源数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringMVC中JSP取不到Mode
- 下一篇: Activity的taskAffinit