本篇用一份独立的虚构游戏记录练习百分比效果与结算顺序。先按规则预测最后状态,再逐行对照运算,可以找出差异究竟来自输入、边界条件,还是结算先后。下面所有数值都只服务于这一道练习。
先读清楚本例规则
效果甲增加7%,乙增加32%。版本一同层相加,基础值乘(1+7%+32%);版本二分层相乘,基础值乘(1+7%)再乘(1+32%)。只在全部计算结束后向下取整。
待测基础值:129,94,121,101,154,159
为何这样记录
两种百分比效果究竟相加还是分层相乘,要由规则决定。单看界面上的两个百分数,无法判断最后数值;还需要知道在哪一步取整。
本例将同层相加和分层相乘分别演算,计算途中保留精确数值,最后统一向下取整。对照的目的是识别机制,不能推断所有游戏都采用其中一种。
逐步演算
基础值129:同层相加得到精确值17931/100,最终取整为179;分层相乘得到精确值455499/2500,最终取整为182,相差3。
基础值94:同层相加得到精确值6533/50,最终取整为130;分层相乘得到精确值165957/1250,最终取整为132,相差2。
基础值121:同层相加得到精确值16819/100,最终取整为168;分层相乘得到精确值427251/2500,最终取整为170,相差2。
基础值101:同层相加得到精确值14039/100,最终取整为140;分层相乘得到精确值356631/2500,最终取整为142,相差2。
基础值154:同层相加得到精确值10703/50,最终取整为214;分层相乘得到精确值271887/1250,最终取整为217,相差3。
基础值159:同层相加得到精确值22101/100,最终取整为221;分层相乘得到精确值561429/2500,最终取整为224,相差3。
结果与交叉核对
同层结果依次为179,130,168,140,214,221;分层结果依次为182,132,170,142,217,224。
未取整前,分层比同层多出的比例是7%乘32%=56/25%。两版差异来自交叉项;各次差值还会受最后取整影响,不一定完全按整数比例变化。
自己怎样练习
自己复核时,可以把纸分成“操作前状态、这一条输入、操作后状态”三栏。先遮住解答完成一遍,再只查找第一次出现分歧的位置;后面的错误往往只是前一步状态传递的结果。确认规则没有改变后,再重新继续,避免只改最终答案却保留中间错误。
第二轮练习只改一条输入,提前写下你预计哪些后续步骤会变化,再重新演算验证。不要同时更改多个条件,否则很难分清是哪条规则造成差别。若实际游戏还涉及随机结果、其他角色、装备或额外判定,应先把这些条件补入记录,本例不会替它们作假设。
