本篇用一份独立的虚构游戏记录练习百分比效果与结算顺序。先按规则预测最后状态,再逐行对照运算,可以找出差异究竟来自输入、边界条件,还是结算先后。下面所有数值都只服务于这一道练习。
先读清楚本例规则
效果甲增加37%,乙增加20%。版本一同层相加,基础值乘(1+37%+20%);版本二分层相乘,基础值乘(1+37%)再乘(1+20%)。只在全部计算结束后向下取整。
待测基础值:92,91,117,148,104,36
为何这样记录
两种百分比效果究竟相加还是分层相乘,要由规则决定。单看界面上的两个百分数,无法判断最后数值;还需要知道在哪一步取整。
本例将同层相加和分层相乘分别演算,计算途中保留精确数值,最后统一向下取整。对照的目的是识别机制,不能推断所有游戏都采用其中一种。
逐步演算
基础值92:同层相加得到精确值3611/25,最终取整为144;分层相乘得到精确值18906/125,最终取整为151,相差7。
基础值91:同层相加得到精确值14287/100,最终取整为142;分层相乘得到精确值37401/250,最终取整为149,相差7。
基础值117:同层相加得到精确值18369/100,最终取整为183;分层相乘得到精确值48087/250,最终取整为192,相差9。
基础值148:同层相加得到精确值5809/25,最终取整为232;分层相乘得到精确值30414/125,最终取整为243,相差11。
基础值104:同层相加得到精确值4082/25,最终取整为163;分层相乘得到精确值21372/125,最终取整为170,相差7。
基础值36:同层相加得到精确值1413/25,最终取整为56;分层相乘得到精确值7398/125,最终取整为59,相差3。
结果与交叉核对
同层结果依次为144,142,183,232,163,56;分层结果依次为151,149,192,243,170,59。
未取整前,分层比同层多出的比例是37%乘20%=37/5%。两版差异来自交叉项;各次差值还会受最后取整影响,不一定完全按整数比例变化。
自己怎样练习
自己复核时,可以把纸分成“操作前状态、这一条输入、操作后状态”三栏。先遮住解答完成一遍,再只查找第一次出现分歧的位置;后面的错误往往只是前一步状态传递的结果。确认规则没有改变后,再重新继续,避免只改最终答案却保留中间错误。
第二轮练习只改一条输入,提前写下你预计哪些后续步骤会变化,再重新演算验证。不要同时更改多个条件,否则很难分清是哪条规则造成差别。若实际游戏还涉及随机结果、其他角色、装备或额外判定,应先把这些条件补入记录,本例不会替它们作假设。
