查看原文
其他

屠龙宝刀,点击就送:10分钟教你学会装备强化计算

2016-09-12 破戒僧 Gad-腾讯游戏开发者平台


10分钟学会屠龙刀强化计算2016/9/9


1.    前言

必须在开篇解释一下,工具是服务于设计目标的,写作本篇的目的,只是希望能帮大家节约工作时间,减少计算量,而并非鼓吹工具的重要性(但如果有同学因此喜欢上mathematica,我还是很高兴的);后续将整理一些常用概率、统计公式或是其它可被数值设计工作使用的基础知识。


2.   问题

某游戏有一种稀有武器——屠龙刀,屠龙刀可以强化到10(初始1),对应的强化规则如下:



等级

成功等级

失败等级

成功概率

失败概率

1→2

1

2

1

0.7

0.3

2→3

2

3

1

0.6

0.4

3→4

3

4

1

0.5

0.5

4→5

4

5

2

0.4

0.6

5→6

5

6

3

0.3

0.7

6→7

6

7

4

0.25

0.75

7→8

7

8

5

0.2

0.8

8→9

8

9

6

0.15

0.85

9→10

9

10

7

0.1

0.9

求得到一把+10的屠龙刀所需的强化次数


3.   背景

这个问题,涉及到随机过程——马可夫过程的计算,步骤较复杂,容易出错。相对于这个计算和学习的成本,其应用场景又较单一,一般仅用于装备强化或是占星猎命。

但这个问题又必须有一个解决的方法,无论是用于面试还是满足项目的实际需求。通常,大部分数值策划,会选择编写VBA进行模拟运算,少部分人使用excel矩阵运算。前者通常不便于复用(少部分vba达人可以写出较通用的代码),后者要求具备一定的数学功底。

于是,我推荐大家使用mathematica来解决这个问题。解答步骤仅3步,完整解答如下(详细步骤及解释见下文):


4.   解答步骤

STEP1:

列出状态转移矩阵:


1 第一行的1~10代表抵达状态,第一列的1~10代表出发状态
2如图第2行第3列的值0.7,表示的是:从状态1→状态2的概率是0.7(强化成功事件),状态1→状态2的概率是0.3(强化失败事件)
3保证每一行的概率之和为1
4该矩阵表示每次强化只有成功和失败退回到指定等级这2种事件,可自行定义升级暴击等事件(有很小几率从1升到3之类)



STEP2:

Mathematica中读取表格数据:

xlsxPath= "C:\\Users\\Administrator\\Desktop\\屠龙刀强化.xlsx";

m =Import[xlsxPath, "Data"][[1]][[16 ;; 25, 2 ;; 11]]


1第一行指定excel文档的路径
2第二行从指定excel读取数据,16;;25表示16~25行,2;;11表示2~11列(这是直接读取xlsx文件的写法,若使用mathematica link for excel加载宏,可以使用Excel[“A1:C1”]这种更好理解的语法)
3Mathemaitca读取表格数据截图:



STEP3:

定义一个马尔科夫过程:

markovProcess = DiscreteMarkovProcess[1,m];


1DiscreteMarkovProcess(Mathematica内置的离散马科夫过程函数),接收2个参数:初始状态和状态转移矩阵
2赋值这个离散马科夫过程到变量markovProcess
3

一句话的计算:







Mean[FirstPassageTimeDistribution[markovProcess,10]]







Mean用于计算分布的期望值







FirstPassageTimeDistribution是求首次通过指定状态的时间分布的函数,接受2个参数:马可夫过程和最终状态(这里的最终状态是10,)





计算如下:


也可以求出在各状态的停留次数(1~9):


5.    问题推广:


在定义了马可夫过程之后,也可以进行模拟,如图模拟了10个分别强化10次的过程:

可以统计一下1000把屠龙刀分别强化10次后停留等级的分布:

也可以计算100次强化到+10的概率:

还可以计算每个等级不同的花费下,强化到+10的总费用,或是指定总费用,到达各等级的分布等等,有兴趣的同学可以自行研究。


揭露游戏圈现实的打油诗 ,读到第几句你哭了

游戏这个行业
干久了
爹妈认为你不孝
总是忙
亲友觉得你不亲
少有时间来往
朋友觉得你很装
经常不联系

未婚的以为你有问题
已婚的以为你有外遇
离婚的以为你有目的

其实我们只是

努力工作,养活自己

晚上下班后
要是同学朋友中有在做游戏的
那就请他们吃个饭吧
反正他们也

去不了……






近期热文

8分钟讲解《Pokemon Go》魅力到底在哪

策划热议:为什么你的创意会被否定?

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存