成就中心 DouJin Terraria! 社区服务 统计排行 帮助
  • 9573阅读
  • 11回复

[StB]蛋疼无极限,WHT计分乱研究(演算过程在1楼,短期结果在2楼)

发帖
286
信仰
0
蓝点
157
符卡
0
— 本帖被 franniss 执行加亮操作(2011-01-26) —
这个纯属大腿内侧酸痛产物……下面包含一大堆非常无聊且不实用的推理。所以……
首先这里必须感谢Incognito老师(磕头3个),所有的体力活都是由他完成(因为我上班可以偷偷干别的,但是不能玩游戏……)。我纯粹负责写这篇酸痛产物,似乎条理有些差,希望不要影响阅读。

缘由是昨天讨论到colorful shot的条件,因此让我们对文花帖的计分方式感兴趣。上网查了一下,只查到一个公式:
S=(A+B)×C
A=子弹数×子弹类型所获得的总分;
B=所有以数字显示的加成奖励的综合,例如下图的七色2100加分
C=所有倍率奖励连乘,例如下图的Boss Shot!所提供的2.0倍
但是这个很简单就能证实是错误的。请看下图:

请将上述公式移项,可以得到
A=S÷C-B=3130÷2.0-2100=-535<0
图中是有子弹的存在的,难道每颗子弹的分数都是负的吗?这明显不可能,因为所有关卡都是子弹越多分数越高的。所以可以认为这个公式明显有问题,至少有些项目是没有表示出来的。
因此我们猜测可能有个不表示出来的数值影响着这条公式的,假设公式的实质形式为:
S=(X+A+B)×C
X只受关卡的影响,并且此关固定,可以是负数。

命题1:相框大小不影响实际得分。
为了证明这个很简单,照两张奖励相同分数相同但是相框大小不同的就可以了。如下图:

可以看到两张均是Solo Shot 100分加分和Boss Shot!的2.0倍率。唯一不同的就是相框大小。两张照片均为180,因此可以否定相框大小对分数的影响。命题1成立。

命题2:Boss Shot!的倍率显示上只有十分位,但是影响实际分数的却不止十分位。倍率使用的是直接舍去十分位以后的规则。
有这个想法原因很简单,Boss Shot!的倍率范围是1.2到2.0的一个连续区间,并且在很多公式里只代入十分位无法计算出有限小数来。因此必须要验证这个结论。首先第一组图片:

可以看到照片里均无子弹(有子弹无法达成Solo Shot)。而且均为Solo Shot 100分加分和Boss Shot!的1.9倍率。但是不一样的是,其中一张为1340分,另一张为1330分。那么按照假想公式来看,这个倍率必然不是取整的1.9。
为了证明2.0是一个稳定的倍率,我们连续照了5张均为Solo Shot 100分加分和Boss Shot!为2.0倍率的照片。得分均为1400。再根据定义区间来看,不可能出现2.0X的倍率,因此为了代公式足够稳定,我们下面采集的样本全部都选用Boss Shot!为2.0倍率的样本。将A=0,B=100,C=2.0,S=1400代入假想公式S=(X+A+B)×C,整理得X=600。
为了验证S=(600+A+B)×C至少对此关的所有Solo Shot成立,再次选取两张1.9倍率的照片代入公式。
1330分:C=S÷(600+A+B)=1330÷700=1.9000
1340分:C=S÷(600+A+B)=1340÷700=1.9143
按此推算,1320分应该是1320÷700=1.8857倍。在Incognito老师超触控场的情况下,我们迅速得到一张1320分的样本。可以看到样本上的奖励为Solo Shot 100分加分和Boss Shot!为1.8倍率,如下。

这样就证明了实际起作用的倍率不限于十分位。并且可以知道倍率是并非四舍五入地显示,而是直接舍去后面所有数字。

命题3:不同关卡的X不一样。并且计算分数的方法是直接舍去个位。
同样我们还是选取Solo Shot作为样本。这次选择了5-1当中红美铃的非符。使用稳定的Boss Shot! 2.0倍率,得到一张照片如下:

将A=0,B=100,C=2.0,S=140代入假想公式S=(X+A+B)×C。整理得到X=-30,那么5-1的分数计算公式(至少对应Solo Shot)为S=(-30+A+B)×C。为了验证公式的正确性,先计算某些特定倍率的区间范围,如:
1.4X倍率的下界为:S=(-30+0+100)×1.4=98
1.5X倍率的下界为:S=(-30+0+100)×1.5=105
1.6X倍率的下界为:S=(-30+0+100)×1.6=112
1.7X倍率的下界为:S=(-30+0+100)×1.7=119
简单地说,只要屏幕上显示1.4倍,那么得分区间应该为[98,105)。而屏幕上显示1.5倍,那么得分区间应该是[105,112)。屏幕上显示1.6倍,那么得分区间应该是[112,119)。
为了测试分数显示不是四舍五入而是直接舍去个位,我们照了5张1.6倍的照片。发现得分全部都是110分,这样可以基本认为是舍去个位。
另外我们再做了一个试验,如果屏幕上显示1.5倍的话,在连续区间[105,112)内取任何一个数作四舍五入都可以得到110。而在Incognito老师再次超触控场的情况下,把四舍五入这个结论给否定了,请看下图。这两个样本均为Solo Shot 100分加分和Boss Shot!为1.5倍率。但是非常神奇地,一张是100分,另一张是110分。而且可以基本认为X在5-1和6-5的情况下数值不同。


子弹分数测试:
然后我们开始了有子弹照片的实践,想找出一颗子弹的得分。为了简单,我们选取了6-5关作为测试内容(只有一种颜色的点弹)。为了避免上面提到的倍率百分位以后的数字影响,一律采用Boss Shot!为2.0倍率的照片样本。但是一出来我们又遇到问题了,请看下面一组图(第一张为照片得分和奖励,第二张为拍照之后子弹消失的瞬间,第三张为拍照的瞬间):

可以看到图中只有Boss Shot!的2.0倍率。而根据拍照瞬间的前后对比,我们数出这次拍照消掉了12个子弹。将S=1680,B=0,C=2.0代入上面推出的公式S=(600+A+B)×C。可以计算出A=1680÷2.0-600=240。那么将分数平均分给12个子弹,得到每个子弹20分。
为了证明此公式的正确性,我们又取得了一张照片样本。如下:

据拍照瞬间的前后对比,我们数出这次拍照消掉了4个子弹。按照每个子弹20分来计算的话。S=(600+4×20+0)×2.0=1360≠560。因此我们怀疑这里的X并非600。因此将X还原成未知数,根据两个样本的结果组合成一个二元一次方程组如下:(Y表示每个子弹得分)
(X+12Y)×2.0=1680
(X+4Y)×2.0=560
解得:X=0,Y=70
那么我们认为,有子弹的照片的公式应该更正为S=(0+A+B)×。为了验证这条公式的正确性,再取得了一个照片样本如下:

据拍照瞬间的前后对比,我们数出这次拍照消掉了8个子弹。将每发子弹70分,基础分A=0,倍率C=2.0代入公式。S=(0+8×70+0)×2.0=1120非常正确。完全符合该照片的实际效果。为了更加肯定这个公式的正确性,我们测试了更复杂的情况。最后取得一个样本照片如下:

据拍照瞬间的前后对比,我们数出这次拍照消掉了5个子弹。将每发子弹70分,基础分A=0,倍率C=2.0×1.2×1.5代入公式。S=(0+5×70+0)×2.0×1.2×1.5=1260。完美无差!


现在根据得到的公式去计算一些得到的数据得分。(Boss Shot!均为2.0倍,并且有Self Shot的1.2倍和Two Shot的1.5倍)
随便取样三张,得分为23940,24440,24940。代入公式移项:
分数23940照片的子弹数:23940÷2.0÷1.2÷1.5÷70=95
分数24440照片的子弹数:24440÷2.0÷1.2÷1.5÷70=97
分数23940照片的子弹数:24940÷2.0÷1.2÷1.5÷70=99

Cyan Shot的作用机制和条件测试:
将Boss Shot!控制为2.0倍的时候(并且有Self Shot的1.2倍和Two Shot的1.5倍),我们发现不会出现像25000分左右的照片,必然直接跳到30000多分。而Cyan Shot的表述里只为300的加成奖励,明显不太可能影响如此的大。取样4个样本,均触发了Cyan Shot的判定。分数列举如下:
32760,33010,34020,38050。
有一个很明显的问题,相邻数据间的相差量是250,1010,4030,不成倍数关系(因为拟定的公式是线性的)。并且通过图片数子弹,数出34020照片中有105发子弹。
根据前面的命题推断,这很有可能是因为个位的舍入造成的。所以我们通过调整个位的数字,将数据改写成下面的4个:
32760,33012,34020,38052再计算一下,相邻数据的相差量是252,1008,4032。成倍数关系!(1008是252的4倍,4032是1008的4倍,4032是252的16倍)
那么根据34020分的照片是105发子弹,就可以推断出32760分的照片是100发子弹,33010分的照片是101发子弹,38050分的照片是121发子弹。
先选取105发子弹34020分的样本代入上面的假想公式,则B=34020÷2.0÷1.5÷1.2-105×70=2100。
再选取100发子弹32760分的样本代入上面的假想公式,则B=32760÷2.0÷1.5÷1.2-100×70=2100。
可以看到Cyan Shot虽然显示是300加成奖励,但是实际上以2100加成起作用。因此最终我们将公式定型成:

S=(子弹数量×70+7×加成奖励总和)×倍率奖励乘积。
至于Cyan Shot的判定条件很明显了,因为99发的照片无法得到Cyan Shot的判定,而100发的照片可以得到Cyan Shot的判定。因此100发或以上的子弹就是Cyan Shot的触发条件

6-5鬼神「鳴動持国天」计分公式基本定型为:
是Solo时:S=(600+加成奖励总和)×倍率奖励乘积
非Solo时:S=(子弹数量×70+7×加成奖励总和)×倍率奖励乘积

但是回想一下,似乎Solo的时候,括号内是600+100=700也是7的倍数?
再联想一下,子弹的分数70分一发,也是7的倍数!

所以关于6-5鬼神「鳴動持国天」最终结论出来了:
S=(子弹数量×10+加成奖励总和)×倍率奖励乘积×7
这个关于上述提到的所有情况都是正确的。
虽然这里底分是0,但是我们暂时还不排除底分的影响。

最终实战计算:
⒈(样本提供者:f8dchao)
样本奖励数据:Boss Shot! 1.6
样本得分数据:4,190点
由于得分和倍率都经过舍入,我们只能算出一个子弹发数区间:
下界:4190÷7÷1.7÷10=35.21
上界:4199÷7÷1.6÷10=37.49
因为倍率显示为1.6的时候不可能取到1.7,因此下界是开区间。那么子弹数量的区间为(35.21 , 37.49]。取得集合里的整数,子弹数量可能是36或37。
为了验证想法还是只能采取数子弹的方式,最终结果为36发子弹。在我们的计算结果内。
那么我们可以算出Boss Shot!倍率的区间,依然采用相同的方法:
下界:4190÷7÷10÷36=1.6627
上界:4199÷7÷10÷36=1.6663
那么说明倍率区间为[1.6627 , 1.6663],当中任何数字舍入后都是显示1.6。符合实际情况。

研究继续中……大腿内侧继续酸痛中……




[ 此帖被六魂在2011-01-27 15:09重新编辑 ]
本帖最近评分记录: 3 条评分 蓝点 +14 隐藏
franniss 蓝点 +10 2011-02-11 -
小小芙兰 蓝点 +1 2011-02-02 赞··算分无能··
赵波 蓝点 +3 2011-01-27 tong......
发帖
286
信仰
0
蓝点
157
符卡
0
只看该作者 11楼 发表于: 2011-01-28
当初以为隐藏倍率在内起作用,后来把它移到外面的,所以就这样叫了

改成关卡倍率方便理解
发帖
661
信仰
0
蓝点
651
符卡
0
只看该作者 10楼 发表于: 2011-01-28
还是叫关卡倍率的好。

另外一共拍摄7枚的关卡,是不是也多?金阁寺就是。
发帖
286
信仰
0
蓝点
157
符卡
0
只看该作者 9楼 发表于: 2011-01-28
外倍率就相当于关卡倍率了,只不过放在括号外面,所以这样叫了

ZUN似乎特喜欢小数,另外也特喜欢7
3.7,0.7这种外倍率都能搞出来,真是高手所为……
发帖
661
信仰
0
蓝点
651
符卡
0
只看该作者 8楼 发表于: 2011-01-28
“外倍率”是个重要概念。

扩展一下,可用于直接从数字评定照片价值了。

或者算出哪个照片,比较好出现整数等等。
发帖
286
信仰
0
蓝点
157
符卡
0
只看该作者 7楼 发表于: 2011-01-28
更新一堆几乎无用的外倍率……感谢INCO老师的努力……
有初步研究对象了……
发帖
661
信仰
0
蓝点
651
符卡
0
只看该作者 6楼 发表于: 2011-01-27
我是1-1 通过分数上限证明,有3关已经可推广。有特例也是推广之后再去发现吧~

那么我就回头写写1-1。

东方系列简介:是由上海爱丽丝幻乐团开发的STG解谜游戏。
发帖
286
信仰
0
蓝点
157
符卡
0
只看该作者 5楼 发表于: 2011-01-27
我们至少证明了risk在鸣动持国天和卫星向日葵里是无效的。
因为发现得分内部系数和底分貌似每关都不一样,所以不太好说risk在其中两关无效就直接拓展到全关无效。
发帖
661
信仰
0
蓝点
651
符卡
0
只看该作者 4楼 发表于: 2011-01-27
Risk Shot我证明过啦。这个我来弄好了。
发帖
286
信仰
0
蓝点
157
符卡
0
只看该作者 地板  发表于: 2011-01-27
如果没有兴趣看演算过程的朋友可以直接看看公式就行。
大家如果代公式之后如果得到反例的话,尽量提供,这对我们的研究帮助非常大
描述
快速回复

您目前还是游客,请 登录注册
如果您在写长篇帖子又不马上发表,建议存为草稿
认证码: