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

[其它/Others][DJM]RF上的分数百分比

发帖
26
信仰
0
蓝点
19
符卡
0
如果不合本区请斑竹转移。

RoyalFlare分数榜上按难度+角色排名时,分数后面会跟一个小百分比。这个百分比可以大致理解成裸分折算后的相对水平,类似当年广东高考用了单科标准分后便把选考不同科目的考生标准分相加算出总排名。(事实上当时的标准分算法跟RF不一样,那个要更加复杂。)

趁现在Th13测试版录像样本小,从观察可以得出一些大致规律:

只有一个录像:

妖梦Easy
☆24,274,010 (50.0)

妖梦Normal
☆61,129,870 (50.0)

猜测:只有一个录像时固定为50。

早苗Hard
☆134,694,450 (60.0)
◇96,029,310 (40.0)

灵梦Lunatic
☆271,031,770 (60.0)
◇111,539,410 (40.0)

猜测:只有两个录像时固定为高分60,低分40。

魔理沙Easy
☆163,940,900 (58.3)
◇148,349,530 (55.8)
△27,278,900 (35.9)

早苗Easy
☆155,947,490 (57.5)
◇151,261,590 (56.7)
△28,489,370 (35.9)

猜测:三个以上录像时相对分数跟分数本身有关,不只是看排名。计算了一下平均值,都是50。标准差都是10。因此拟合公式猜测为把分数标准化为平均值50和标准差10,而保持分数差的相对值不变。

编写了一个简单Matlab程序,并用魔理沙Hard数据作了验证。

原始数据:
☆306,009,900 (63.8)
◇249,879,650 (50.9)
△245,341,150 (49.8)
183,525,940 (35.5)

  1. Data = [306009900, 249879650, 245341150, 183525940];
  2. N = numel(Data);
  3. S = sum(Data);
  4. SS = sum(Data .* Data);
  5. sigma = sqrt(SS/N - S*S/(N*N));
  6. avg = S/N;
  7. rf = 50 + 10*(Data-avg)/sigma

输出结果为
  1. 63.7970   50.8512   49.8044   35.5474

验证通过。

其实这个公式对任何数据量都适用。惟标准差为零的情形需单独设定每个分数均折合为50分。

问题1:高分和低分对应的百分比理论上是否有下限?
2011-04-21 15:33
答案:没有。N个样本里N-1个相同,剩下一个不同,则折合分为[tex]50\pm10\sqrt{N-1}[/tex]

问题2:给定样本数量N,求可能的最大和最小折合分(要求证明)。
[ 此帖被i.Blade在2011-04-21 15:35重新编辑 ]
本帖最近评分记录: 2 条评分 蓝点 +7 隐藏
幻の上帝 蓝点 +2 2011-04-23 开DZZ版的时候就注意了...
franniss 蓝点 +5 2011-04-21 熊姬注视着你
发帖
392
信仰
5
蓝点
329
符卡
0
只看该作者 沙发  发表于: 2011-04-21
貌似没上下限吧。。。
发帖
449
信仰
5
蓝点
411
符卡
0
只看该作者 板凳  发表于: 2011-04-21
这个算法可能出现负值,但是RF的实际数据样本很难出现大于100或小于0的情况,于是是一直比较合理的折算方法?
发帖
293
信仰
38
蓝点
544
符卡
2
只看该作者 地板  发表于: 2011-04-21
原来这个数字是这个意思啊
ray
发帖
25
信仰
0
蓝点
4
符卡
0
只看该作者 4楼 发表于: 2011-04-21
虽然不明白但是好厉害啊
发帖
1514
信仰
6
蓝点
767
符卡
0
只看该作者 5楼 发表于: 2011-04-21
好厉害啊稍微明白一点点了
发帖
144
信仰
41
蓝点
195
符卡
2
只看该作者 6楼 发表于: 2011-04-21
看了很久稍微明白了一点,这个太发了
发帖
179
信仰
0
蓝点
171
符卡
0
只看该作者 7楼 发表于: 2011-04-21
最小,最大均为第1问的解,对称,证明之后再补上
第一问确认没犯错?
[ 此帖被resty在2011-04-21 18:40重新编辑 ]
发帖
26
信仰
0
蓝点
19
符卡
0
只看该作者 8楼 发表于: 2011-04-21
引用
引用第7楼resty于2011-04-21 18:17发表的  :
最小,最大均为第1问的解,对称,证明之后再补上
第一问确认没犯错?

可能楼顶的说得太简略了。意思是N-1个同样的最小和1个最大,比如N-1个0和1个1,那1对应的折算分是[tex]50+10\sqrt{N-1}[/tex]。同样,N-1个0和1个-1,-1对应的折算分是[tex]50-10\sqrt{N-1}[/tex]。这里的最大和最小是不能在同一组样本中产生的。

这又让我想到另一个问题,就是一组样本里最大折算分和最小折算分最多可以差多少。
发帖
179
信仰
0
蓝点
171
符卡
0
只看该作者 9楼 发表于: 2011-04-23
其实很容易想到,2问的解也是除了一个不同,剩下的都相同。用均值不等式可以推
后面这个问题,猜想是两个一正一负,剩下全是平均值,这样差会最大。要证明应该也可以从均值不等式,或归纳法入手
顺手翻译成了python代码
  1. import math
  2. def calc(lst):
  3.     N = len(lst)
  4.     S = reduce(lambda x, y: x + y, lst, 0) * 1.0
  5.     SS = reduce(lambda x, y: x + y*y, lst, 0) * 1.0
  6.     sigma = math.sqrt(SS/N - S*S / (N*N))
  7.     avg = S / N
  8.     rf = [50 + 10 * (x - avg) / sigma for x in lst]
  9.     return rf
  10. if __name__=="__main__":
  11.     print(calc([306009900.0, 249879650.0, 245341150.0, 183525940.0]))

[ 此帖被resty在2011-04-23 11:02重新编辑 ]
描述
快速回复

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