本来想研究是否可能把召唤兽的所有资质和成长统一为一个数值的,发现有点困难,搞着搞着又再次跑去研究召唤兽的灵力公式了。
在之前,我一直使用着的灵力公式为:
灵力=等级*(法力资质+1640)*(成长+1)/7500+体质*0.3+法力*0.7+力量*0.4+耐力*0.2
这个公式是比较准确的,误差一般不超过3,但误差率还是很高。平常使用是很合适的,我下面得出的公式日常计算起来不是那么的方便。
计算机计算跟我们平时计算最大的区别就是它并不会那么准确,它会把小数剔除或者四舍五入,并且不是只在结果处进行这种取整计算,在过程中也会进行。
首先我研究了几只0级宝宝,0级宝宝没有等级方面获取的属性,所有属性完全由属性中得到。计算后我发现,各项属性中获得的灵力是单独计算,舍弃小数后再求和的。比如说一个0级BB的属性为:
体质19(5.7灵)
魔力24(16.8灵)
力量27(10.8灵)
耐力14(2.8灵)
敏捷16
那么其实际灵力为5+16+10+2=33灵,而不是5.7+16.8+10.8+2.8=36.1
在之后我还对一只没加点的成年BB进行了测试,发现成年BB也是如此,每项属性的灵力单独计算,剔除小数后(非四舍五入)再相加,得到属性部分的灵力。
比如说你有一只BB:目前239体质(71.7灵)257法力(179.9灵),那么你洗一点法力加给体力,灵力不止不会降,反而会上升1点
然后就是等级部分公式的改良了,我先从商会找了十几只BB将属性录入Excel,然后不断的变啊变,各种尝试,得到一个精度更高的公式,然后我又从商会和自己的BB获取了总共100只召唤兽的属性对新公式进行验证,93只召唤兽的灵力计算完全准确,7只召唤兽存在误差,误差也不超过±1,应该说准确度是大幅上升了,不过依然不是真正正确的公式。
介绍一下我的经验,发现小数的问题后,我就将目光投到了7500这个数字中,防御、伤害和灵力公式中都有7500这个数,我想这个数也是我们普通公式产生误差的关键,拿灵力公式来说:等级*(法力资质+1640)*(成长+1)/7500,这部份里面,7500绝对不是一口气除的,甚至这个数到底是不是7500都不一定,它应该是分成了两部分,一部分跟(法力资质+1640)这部份除(数值还可能有变动),一部分跟(成长+1)除,得到的结果先分别进行一次近似计算,比如说保留两位小数,然后这两个结果再相乘,两次近似之后的结果跟直接相乘就会不同,我也认为这个是最有可能导致目前的公式经常存在误差的原因。好吧如果这事确实很无聊,我个人爱好而已。
下面是我得出的精度较高的灵力公式:
灵力=((法力资质+1662)/100[四舍五入保留两位小数]*(成长+1)/75[四舍五入保留两位小数]*等级)[舍去小数取整]+体质*0.3[舍去小数取整]+法力*0.7[舍去小数取整]+力量*0.4[舍去小数取整]+耐力*0.2[舍去小数取整]
这个是Excel中的公式:
灵力=INT(A2*ROUND(ROUND((B2+1662)/100,2)*ROUND((C2+1)/75,2),2),0)+INT(D2*0.3)+INT(E2*0.7)+INT(F2*0.4)+INT(G2*0.2)
其中A2是等级,B2是法力资质,C2是成长,D2是体质,E2是法力,F2是力量,G2是耐力 INT表示舍去小数取整,ROUND表示四舍五入,后面的2表示保留两位小数。
在之前,我一直使用着的灵力公式为:
灵力=等级*(法力资质+1640)*(成长+1)/7500+体质*0.3+法力*0.7+力量*0.4+耐力*0.2
这个公式是比较准确的,误差一般不超过3,但误差率还是很高。平常使用是很合适的,我下面得出的公式日常计算起来不是那么的方便。
计算机计算跟我们平时计算最大的区别就是它并不会那么准确,它会把小数剔除或者四舍五入,并且不是只在结果处进行这种取整计算,在过程中也会进行。
首先我研究了几只0级宝宝,0级宝宝没有等级方面获取的属性,所有属性完全由属性中得到。计算后我发现,各项属性中获得的灵力是单独计算,舍弃小数后再求和的。比如说一个0级BB的属性为:
体质19(5.7灵)
魔力24(16.8灵)
力量27(10.8灵)
耐力14(2.8灵)
敏捷16
那么其实际灵力为5+16+10+2=33灵,而不是5.7+16.8+10.8+2.8=36.1
在之后我还对一只没加点的成年BB进行了测试,发现成年BB也是如此,每项属性的灵力单独计算,剔除小数后(非四舍五入)再相加,得到属性部分的灵力。
比如说你有一只BB:目前239体质(71.7灵)257法力(179.9灵),那么你洗一点法力加给体力,灵力不止不会降,反而会上升1点
然后就是等级部分公式的改良了,我先从商会找了十几只BB将属性录入Excel,然后不断的变啊变,各种尝试,得到一个精度更高的公式,然后我又从商会和自己的BB获取了总共100只召唤兽的属性对新公式进行验证,93只召唤兽的灵力计算完全准确,7只召唤兽存在误差,误差也不超过±1,应该说准确度是大幅上升了,不过依然不是真正正确的公式。
介绍一下我的经验,发现小数的问题后,我就将目光投到了7500这个数字中,防御、伤害和灵力公式中都有7500这个数,我想这个数也是我们普通公式产生误差的关键,拿灵力公式来说:等级*(法力资质+1640)*(成长+1)/7500,这部份里面,7500绝对不是一口气除的,甚至这个数到底是不是7500都不一定,它应该是分成了两部分,一部分跟(法力资质+1640)这部份除(数值还可能有变动),一部分跟(成长+1)除,得到的结果先分别进行一次近似计算,比如说保留两位小数,然后这两个结果再相乘,两次近似之后的结果跟直接相乘就会不同,我也认为这个是最有可能导致目前的公式经常存在误差的原因。好吧如果这事确实很无聊,我个人爱好而已。
下面是我得出的精度较高的灵力公式:
灵力=((法力资质+1662)/100[四舍五入保留两位小数]*(成长+1)/75[四舍五入保留两位小数]*等级)[舍去小数取整]+体质*0.3[舍去小数取整]+法力*0.7[舍去小数取整]+力量*0.4[舍去小数取整]+耐力*0.2[舍去小数取整]
这个是Excel中的公式:
灵力=INT(A2*ROUND(ROUND((B2+1662)/100,2)*ROUND((C2+1)/75,2),2),0)+INT(D2*0.3)+INT(E2*0.7)+INT(F2*0.4)+INT(G2*0.2)
其中A2是等级,B2是法力资质,C2是成长,D2是体质,E2是法力,F2是力量,G2是耐力 INT表示舍去小数取整,ROUND表示四舍五入,后面的2表示保留两位小数。