
前人工作摘要:
ptt组成 每个人的ptt由40个成绩取均值而成,其中30个best成绩和10个recent成绩。
总结:potential的总体构成已经有框架,也就是定数系统,best30和产生于recent30中的top10,但是对于recent部分,最为复杂的部分,没有过多研究。
实验方法:通过30次放置,通过表格按顺序记录一定顺序总结规律。所有操作均为单设备登录并且网络良好。
实验过程:
实验第一次第二次因为经验不足,出现过多失误,此处不多做介绍。
第三次实验:

第三次
前十次pm制定曲目,11pc设计为单曲ptt为最高,随后均为放置并观察ptt变化。没有实质性结论,类似于验证。
第四次实验:

第四次

计算验证(注意最后一行实际上为0)
根据计算结果,在14pc后,11pc取代了8pc,12pc取代了9pc,而13pc没有计入。8,9pc不在top中但仍在recent中。
也就是说:当前的成绩如果是EX,那么必须要使得ptt增加(等价于比top10中的最低要高)才计入recent,并且top会重新计算(推论就是EX只能加或者keep)。但是top中原来最低的成绩没有写出recent。
第五次:

发现异常
37pc,38pc写出2,3pc。
39pc计入但是发现并没有按照时间顺序写出recent,对应3pc应该被写出。
41pc按照预期,3pc被写出。
42pc进入top使得ptt增加。

异常情况复现
42,43,46pc复现39pc情况,其中42,43均为EX,而46为Hard Track Lost且未EX
剩下的按预期变化,44,45分别写出6pc,7pc。
目前已知的是Hard Track Lost与EX有相同的recent写入判定。但是写入时候对应的写出不是按照时间顺序。猜测是将最低成绩写出。
第六次

第六次
注意:此次实验可能较为不严谨,与第二次,三次实验类似,有更好的验证方法(但是我懒)
理论上11,12写出的是实验开始前30pc的放置。
实验结论:
recent是按照时间顺序排列的,最早的pc位于最前面
分两种情况:
①分数小于EX
直接写入末尾,最早的pc写出,也就是按时间顺序写入与写出recent
②分数大于等于EX或者困难模式track lost
如果比top中的最小值大,也就是可以更新top,那么会把recent中ptt最低的pc写出(同ptt则取最早);否则不计入。
后续通过自己用c++写的模拟程序(手动输入),用多次记录验证了上述结论。
后记:

感谢成员协助以及Vanitas
不知道那天开始就对ptt机制感兴趣,想着弄明白具体算法并且看能不能自己实现一定的模拟。后来看到了Arcaea的中文wiki并获取到了一些信息,也发现了一些问题(早期的ptt计算公式中的系数存在经验数值而非精确数值),某天看到了Xs写的Tairitsu机器人有查询Arc单曲ptt功能后告诉了协助写potential页面的Vanitas(老婆)和RW,在一定了解后修正了计算公式。(目前另外一个疑点就是step计算式,对就是那个根号)
接下来就是愉快开始recent相关实验,一开始还是很容易不记得自己打到多少pc的,也没有相关api能查到recent记录。后来想到了放置的时候记得按顺序换歌曲打,才尽量避免了记录失误。
然而那个C++代码,因为写得不太好,我已经不太想改了。
残象之形