《梦幻西游》【技术】游戏中如何决策:函数构造、多元函数偏微分与非线性规划

share

天蝎座丶初恋:几把玩意,点个技能还这么算不累么? 发布于 2018-09-04 04:30:37

北北先生_:你到底要说什么 结论呢? 发布于 2018-09-04 04:29:42

我就是聪明呆:自己练的话只有更贵,不存在更便宜的 发布于 2018-09-04 04:17:22

我就是聪明呆:花最少的钱玩最舒服的号呗,但是你考虑了自己点,卖号会亏么。这是个养成游戏,迟早全满,那就没有意义了。 发布于 2018-09-04 04:17:02

woo20325:每个字都认得 !整一起了不认得 发布于 2018-09-04 04:15:57

lx10525:概括一下:LZ想要算一下在各个充钱阶段哪个东西性价比最高
然后把每一步都写得非常非常详细地去计算一个师门技能等级和花费的关系,这个行为就跟在上课教微积分的时候先把加减乘除用四种语言都教一遍一样 发布于 2018-09-04 04:12:52

执笔丶念伊人:算这么麻烦干嘛,全满就完事儿了。 发布于 2018-09-04 04:12:32

小番茄FAN:我觉得你需要Matlab,再搞搞回归 发布于 2018-09-04 04:08:42

Japan首都40度:留名,梦幻有太多数据可以反映的东西没被挖掘出来了 发布于 2018-09-04 04:02:12

多玩盒子LOL:性价比,最少的投入最高的回报 发布于 2018-09-04 04:01:07

白龙龙06:那么在本思路中,有很多难题,我们已经在第一章里示范了S1与g1的关系,同样的,S2和g2之间的关系也可以求。
但是还有很多函数关系我们并没有得到,比如武器伤害W和g3之间的关系,这显然是非线性的,而且不好估测。我会以我们区的物价为基准,且以109级为标准,列一个W和g3的关系,就是说109级的装备伤害与价格之间的关系,例如W=10,10点伤害就是0级武器,那么对应的g3=500。当然低级武器可以以NPC价格为参考,而高级一点的,或者超过国标部分的伤害,可能就会是一个非常不精确的平均估值,例如109所带的初伤为600的武器的价格,就是500伤最便宜的无级别的价格。最终这个W值是有上限的,而g没有上限,所以当g3趋于无穷大的时候,W趋于某个确定的值,即150W*满伤627(不考虑专用)。
如果我们连个非线性非多项式的函数关系就找到了,整个课题就简单得多了 发布于 2018-09-04 04:00:52

花式撸管至尊:作为过来人给你说,先师门技能 再修炼 再宝宝。装备 --然后其他的坐骑,坐骑技能 发布于 2018-09-04 04:00:32

白龙龙06:【技术第二章:求解思路】
先剧透一下,我最终会用c++写一段代码,思路是这样的:
比如女儿村,他的输出Dpr(damage per round)受很多因素影响,就目前我知道的,有:目标个数N(number of attack)、门派技能S1(master skill)、暗器技能S2(skill of hidden weapon)、武器伤害(包括伤害符合太阳石)W(weapon damage)、敏捷属性A(agility)、灵饰固伤O(ornament)、阵法加成F(formation)、法术修炼Pm(practice of magic)、法抗修炼Pr(practice of resistance)、符石R(rune)、固伤符F(Fu Wen of Shenmulin)、暗器命中H(hidden weapon)。
我们得到的函数是一个Dpr关于N、S1、S2、W、A、O、F、Pm、Pr、R、F、H的12元函数。
而每一个参数,都和金钱g有关我们可以模拟出每一个参数和在这一项上花的金钱gi的函数关系:
g1=g1(S1)(师门技能上消耗的金钱和技能等级的关系,第一章我们给出了),g2=g2(S2),g3=g3(W),……
然后我们对所有的gi进行求和,g=g1+g2+g3+...+g12
那么我们给定一个g值,必然有一个最大的Dpr,每一个g及其对应的最大的Dpr,构成一个函数,这是我们需要的。
这个函数的意思是:如果我投入一个确定的资金,我能达到的最大的每回合伤害之间的函数关系。
其实这是一个非线性规划的题目,g=g1+g2+……+g12为约束方程,Dpr=f(gi)为规划方程。
那么我们如何处理这个非线性规划呢?
我的方法是这样的:
第一步:初始化,取函数Dpr=f(gi),约束方程g=sum(gi),其中g=gi=0,Dpr=D。
第二步:用Dpr=f(gi)对每一个参数gi求偏导,得到12个方程d1=d1(g1),d2=d2(g2),...di=di(gi)。
第三步:令g=g+1。(自变量取下一个。)
第四步:将gi带入每一个di中,求各自的偏导值di1。(算在当前情况下每一个项目所能增加的伤害值。)
第四步:比较每一个di1,取最大值,假设当i=k时求得最大值dk1。(这里的意思是把钱花到第k的项目上,提高的伤害最大。)
第五步:令gk=gk+1。(把钱分配到gk上去。)
第六步:将新的gk带入到原函数里求新的Dpr。
第七步:输出所有数据。
第八步:重复第三步到第七步。
由此,最终我们可以求解出最佳的充值路径。
而且可以得到当我们充值金额为某一个确定值时,所能取得的最大伤害量,并得到其对应的在每一个项目上分配的金额和提升的水平。
搞定!
思路就是这样,接下来的几天我会详细描述每一个环节,并最终用Microsoft visual c++写出代码,然后用计算机算出我的最佳路径 发布于 2018-09-04 03:59:52

斯蒂芬森擦:透你 发布于 2018-09-04 03:57:27

18世纪de忧伤:算这个意义不大啊 因为 将军令就可以帮你算了。。 发布于 2018-09-04 03:57:17

cbdt1997:看不懂,留名就是了,肯定火 发布于 2018-09-04 03:56:57

白龙龙06:太复杂看不懂?微软知道你可能不会,除此之外,我们还有一个方法:

可以在趋势线里选择“多项式”,并填写项数,一步到位。
当然并不是一步到位,我详细写一下这一种方法:
发布于 2018-09-04 03:56:47

胯下你全家女性:抱歉。
发布于 2018-09-04 03:56:02

fragment_7M:哪有那么多套路,充值使你变强 发布于 2018-09-04 03:55:52

CrosseraKing:我不看 充钱就完事了 一天不充我就浑身难受 发布于 2018-09-04 03:55:47

白龙龙06:开更!
【技术第一章:如何利用数据模拟多项式函数】
先放结论:技能消耗金钱值g(gold)与技能等级s(skill)之间的关系式为:g=0.002s^4+0.06s^3+6s-0.689
游戏是以数据为基础的,在代码封闭的情况下,如何利用输出数据,模拟程序内部的函数关系,是游戏数据分析的重要课题,下面介绍一种方法:
我们分析梦幻里每一级师门技能s和对应需要消耗的金钱数g的关系。
首先我们需要拿到输出数据列表,网上有的,官网上也查得到。
我们将之输出到Excel里,如图所示:

这样我们得到了原始数据,虽然实际上这是一个数列Gn,我们也可以近似看作一个可微函数g=f(s)。
但如何得到f(x)的具体表达式呢?
这里有一个针对多项式的专门的方法:
第一步:将原始数据逐项相减,G(s)-G(s-1),得到新的数列。易证:新数列的主项和原函数的导数的主项相同。这样我们得到的数列所对应的新函数g2=f2(s)是原函数g=f(s)的导数,多项式求导次数会降低一次。
第二步:重复第一步的内容,将新函数逐项相减,得到g3、g4、g5...。
第三步:由于原函数g=f(s)是多项式,经过有限次的降次,将得到一次函数y=kx+b,直观上可以通过作图看出数据已经均匀分布在直线上或两侧附近。
第四步:用Excel画出上述一次函数的趋势线,假设我们得到g4为一次函数,其斜率为k=0.048,主项为0.048s。
第五步:积分得到g3,我们知道g4是g3的导数,那么对g3积分,就是g4,这里我们只积主项,因为数列求差和函数求导的主项是一样的,但低阶项会产生误差,显然g3的主项是0.024s^2。
第六步:重复以上步骤,积分得到g的主项,高中知识就告诉我们结果是0.002s^4。这样我们就得到了第一主项。
第七步:列出第一主项的值,用原始数据减第一主项得到误差。
第八步:显然误差是三次的,设误差为p1,我们用p1的各项逐渐相减,用刚刚处理原数列的方法处理p1数列,最终求出p1的主项为0.06s^3,这就是原函数的第二项。
第九步:重复第七步和第八步,求出原函数的所有项。
第十步:将所求所有项相加,得到原函数为:g=0.002s^4+0.06s^3+6s-0.689。 发布于 2018-09-04 03:55:22

沈会稽:关注下,我看题主怎么吹 发布于 2018-09-04 03:54:12

白龙龙06:二楼自用。
本楼为【目录检索楼】。
本楼禁止回复,所有回复将被删除。
检索本帖内容请到本楼的楼中楼。 发布于 2018-09-04 03:51:17

白龙龙06:【本帖严禁私自转载】
【引用本帖结论请注明来源】
【本帖长期更新】
一楼叙事。
故事回到一周前的一个夜晚,我和女友正在肝饥荒,这已经是我们第n次重新开档,异地恋除了肝游戏,还能gan点啥?奈何主机不给力,网络上行速度又跟不上,自建服务器卡成狗,我又不忍心让她卡,只能让她当主机,卡得我要哭了,她又只会捡东西,我又卡,根本混不过冬天...
于是我就跟她说:要不然我们玩(xi)梦(du)幻(pin)吧!
回想起初中时代的梦幻时光,那是我最美好的回忆之一,那时候玩过飞燕女(女儿村),还玩过舞天姬(龙宫),玩109舞天姬还和初中最好的哥♂们结婚三年,那是一段令(bu)人(kan)怀(hui)念(shou)的时光。
(此处省略一万字)
所以我就胡汉三又回来了!!
情怀党当然是选择自己练,目前在世界之窗,女友单开,我四开。
作为吧龄4年的黄(yun)标(wan)队(jia)成员,刚进入游戏,我就懵逼了——这个游戏是怎么玩的?
于是我打算用本科四年所学的知识,去解读这个游戏,顺便分享给可爱的吧友。
但是我转念一想,吧均满修满技能150W*17段,根本不需要什么分析,只需要加大充值力度,决策什么的,好像没啥用。就当萌新自嗨吧。
进入正题!本帖主要是介绍一些常用的数据分析和处理的方法(针对有基础想分析,但苦于找不到合适模型的吧友,算是抛砖引玉吧),当然我自己也会慢慢地更新一些实际处理的结论。
队伍图镇!(手机上就这一张图,以后都不会伤害大家的眼睛了)
发布于 2018-09-04 03:51:02

更多《梦幻西游》【技术】游戏中如何决策:函数构造、多元函数偏微分与非线性规划相关问题

问题:《梦幻西游》【技术】游戏中如何决策:函数构造、多元函数偏微分与非线性规划

回答:其实剃切就是创真的妈妈...当年外出时突然要生产,这时城一郎也不在身边,紧急之下只好在厕所产子,而创真头朝下出来的时候,刚好碰伤了眉毛...但剃切却因难产而死, 城一郎伤心欲绝,便半路出家,开始了时光机的制造.制造成功后,便回到过去,把还在襁褓中的剃切... 详情 >

问题:《龙珠超》问一下大家龙珠中目前出现的单体,超单体,甚至多元级别的人物有

回答:请问东京食喰种除了最新话 以前的在哪看 详情 >

问题:《最终幻想》8懂就问,请问FF7原作剧情方面究竟是野岛写的还是野村写的?

回答:这也太丑了吧,一个无脑女巨人而已,就像故意渲染绝望氛围一样 详情 >

问题:刚重新看了一遍犬夜叉,发现剧情除了漏洞,关于11级肉身人面的妖

回答:你先表明态度(和解)还是(大妈被主角打败)? 详情 >

问题:《信长之野望》技术牛来帮忙---信野9岚世纪修改内存求教。

回答:不对啊那贝特咋成巨人了? 详情 >