2006-11-25 13:40
俺是马甲
(原创)信长传敌方等级分析
这是我很久以前和颜慕回约好要做的工作(鄙视这家伙太监了,大家有兴趣
可以看下我那时的回帖,那时还没坚定要把这工作做下来呢,呵呵)
那个时候,基本上以经确定了两个事实:
1,信长等级的影响与其他人并不完全相同;
2,除信长外的其他人的等级的影响完全相同,因此其他人只有平均等级有影响。
后来的测试数据也证明了这一点,因此本帖中以y代表敌方小兵等级,x1代表信长
等级,x2代表其他人的平均等级,n代表我方包括信长的所有人物数。注意不包括友军
,友军的等级等于敌方小兵等级。另外,敌方大将的等级按照光荣的传统,猜测应
该只是在y的基础之上加上修正因子,因此也无需讨论。
从颜慕回的帖子中可以看到,当时就有网友提出
y=k1*x1+k2*x2+C
这上说法,我一开始也是赞同这种观点的。昨天刚开始分析时也
是按照这个思路做下去(不想误导了很久…………),大家可以看看我测
的几组数据,在保持x1或者x2一个值不变时,y似乎确实就是另外一个的线性
函数:
敌方等级 信长等级 其他人平均等级
58 99 1
64 99 15
70 99 29
75 99 43
81 99 57
87 99 71
93 99 85
99 99 99
83 1 99
85 15 99
87 29 99
90 43 99
92 57 99
94 71 99
97 85 99
99 99 99
1 1 1
9 15 1
17 29 1
25 43 1
33 57 1
42 71 1
50 85 1
58 99 1
可是,当我对我测的大量数据进行线性回归时,线性相关系数都比较小,而且置信区间比k1,k2的实际值都大……
这时,我又想到要保证在保持x1或者x2一个值不变时,y是另外一个的线性函数也可以取
y=k1*x1+k2*x2+k3*x1*x2+C
因此,我再次作线性回归,得到的结果比前面的结果并没有什么改善。
没有办法,我只有放弃很快得到结果的希望,耐下性子来进行数据测试。
这回我为了让数据全面并且回归结果比较接近事实,特别让
x1,x2分别取1,15,29,43,57,71,85,99这个等差数列中的8个数,共有64种组合。
当我在固定x2为57(这也是我改用这种办法测的第一组数,因为1和99肯定早就测了…………)
时,我发现了y不完全是x1线性函数的反常:
敌方等级 信长等级 其他人平均等级
48 1 57
50 15 57
52 29 57
55 43 57
57 57 57
65 71 57
73 85 57
81 99 57
很显然,在x1=x2这一点出出现了跳跃,但是在x1<=x2和x1>=x2这两个区间上
线性规律似乎仍然分别保留,只是在x1=x2这一点线性系数出现了跳跃
因此我把x1<=x2和x1>=x2的所有数据都测出来并分开进行线性回归,
哈哈,得出的结果果然线性保持得很好了。r已经达到3个9一个8甚至4个9的程度,置信区间也比较合理了
这样子,规律已经呼之欲出了。
不过,接下来取整的问题又难倒了我,因为线性回归是不会判断有没有取整的。
所以接下来我都只有反复回归再加猜测,测试临界点数据等等,不过还是有的东西没搞很清楚。
不过,大致规律可以出来了:
1,当信长等级低于或者等于其他人平均等级时,敌方小兵等级就等于我方包括信长在内的所有人的
平均等级,取整似乎是四舍五入,或者说加0.5再取整。用公式表示即:
y=[(x1+x2*(n-1))/n+1/2]
方括号表示取整函数或者说是高斯函数啦。
2,当信长等级高于或者等于其他人平均等级时,信长等级的影响大大提高,其线性系数超过1/2,具体的
公式是:
y=[((n+1)/2n)*x1+((n-1)/2n)*x2+1/4]
对于这个公式,我觉得系统应该是这样子算的:
先算出所有人的平均等级,就按照第一个公式进行计算,即:
y1=[(x1+x2*(n-1))/n+1/2]
再以y1和信长的等级x1取平均:
y=[(y1+x1)/2]
这样子算的话,会与首先给出的那个式子会有些细微的差别的,呵呵。个人猜测应该是后面两步的这种。
我一开始估计常数应该是1/4,但始终想不出来为什么会是这个,想想可能就是这个了。
至此,我的这点成果就写到这里就完了。现下还有两个问题就是:
1,两种情况下的公式并没有进行数据的暴力测试(尤其是后期的数据),不敢保证绝对正确,但逻辑上推测应该没什么太大问题。特别是要指出常数项的确定个人不敢完全打包票哦。这个东西我不擅长,只是瞎猜瞎凑的。
2,两种情况下公式中的n意义并不完全明确。因为到后期了有的人不能出场,而且出场人数也有限制,此时n怎么取,而且x2应
该是取哪些人的平均都有待进一步研究。
由于这个游戏我并没有后期的存档,所以后期的数据支持几乎没有。另外这两天搞这个也搞疲了。哪位大大有兴趣且对于取整问题比较有心得的不妨把这个问题完全研究透,某是顶不住了………
总而言之,虽然未能完全确定规律,但是小小成果也不敢独藏,特发上来给大家分享(其实就想骗点功绩,嘿嘿……节度大人帮点忙喽),另外大家有心的有能力的请继续加把劲把这个摸透呀!
后记,因为网络的原因,发了一次没成功,又重写了一次(这么长的东西………………)
还好,第二次我记得先复制内容了,55555………………
有的网友说这个太数学化了,不太好看,那我来用简单的文字说明一下。
其实我啰嗦了半天,实质上很简单,就是两点:
第一,如果信长等级低于(其他人的)平均等级,则敌方的基础等级就是我方所有人的平均等级;由于这个平均等级不一定是整数,所以要四舍五入。比如我给的数据中,第一关,我方信长1级,其他有5个都是99级,所以敌方基础等级就是1加上5个99再除以6,是82.67,四舍五入就是83,所以这关的小兵都是83级。
第二,如果信长等级高于(其他人的)平均等级,则敌方的基础等级就是把第一条得到的等级再与信长的等级进行平均(就是相加再除2),因为结果也不一定是整数,所以要把小数部分去掉。比如我给的数据中,第一关,我方信长99级,其他5个人都是1级。按第一条算的平均等级是17.3级,四舍五入是17级。然后再和信长等级99平均,就得到58,所以这一关中敌方小兵都是58级。
(注:这里加括号是因为加不加括号结果都是一样的。如果低于其他人的平均等级,也就低于包括自己的平均等级。如果高于其他人的平均等级,也就高于包括自己的平均等级。如果等于…………………………)
就是这样子,很简单的两点。另外,友军的等级也是按这两条算的,就是和敌方基础等级一样。需要再说明的就是有名字的将领和有些比较难的关卡有些小兵是在基础等级基础上再加上一个修正值的。
[[i] 本帖最后由 俺是马甲 于 2006-11-28 13:21 编辑 [/i]]
2006-11-25 23:31
rancetrw
先收了再研究
2006-11-26 00:08
俺是马甲
这个帖子没人气呀,信长传果然是没什么人关心
一天了只有一个人回帖,唉………………
越发没有动力完成信长传的所有测试了…………
2006-11-26 13:08
KYOKO
这是英杰传几?
恐怕玩的人不多...
2006-11-26 13:20
云海SLG
我来支持下吧,现在纯研究的不多了。
2006-11-26 20:03
⊙_⌒堕天使
LZ 真是惊人
纯个人比较支持
那些 函数是怎么算出来的 太强了
2006-11-27 15:53
俺是马甲
[quote]原帖由 [i]⊙_⌒堕天使[/i] 于 2006-11-26 20:03 发表
LZ 真是惊人
纯个人比较支持
那些 函数是怎么算出来的 太强了 [/quote]
呵呵,斑斑太看得起了,还加了推荐。
其实很简单的,因为从我的数据上谁都很容易看出来是线性函数
然后就用EXCEL的线性回归来确定系数。
只是比较麻烦的是由于变量都是整数,而系数不是。
所以只能从回归的结果中去找规律。前辈们对光
荣游戏分析的经验,系数应该是比较简单的分数,所以往这方面去猜。
因而得出主题帖的结论。呵呵
还是我比较弱,不懂去分析游戏内核,只能用这么笨的办法。
[[i] 本帖最后由 俺是马甲 于 2006-11-27 18:18 编辑 [/i]]
2006-11-27 21:30
lzwqq
虽然sb传也通n遍了~~可是看到这个函数分析~~只有两个字~~~我晕!再两个字~~~~高人!!!!!!!!
2006-11-27 22:50
俺是马甲
[quote]原帖由 [i]lzwqq[/i] 于 2006-11-27 21:30 发表
虽然sb传也通n遍了~~可是看到这个函数分析~~只有两个字~~~我晕!再两个字~~~~高人!!!!!!!! [/quote]
啊啊啊,不要谬赞某人了,我用的都是最原始的办法,称不得高人
既然兄台这么熟这个游戏,不妨用你的存档帮某验证验证,看有没有什么问题。
2006-11-28 12:30
ft1114619
不是不想支持~主要是看不懂~
2006-11-28 13:18
俺是马甲
[quote]原帖由 [i]ft1114619[/i] 于 2006-11-28 12:30 发表
不是不想支持~主要是看不懂~ [/quote]
其实我啰嗦了半天,实质上很简单,就是两点:
第一,如果信长等级低于(其他人的)平均等级,则敌方的基础等级就是我方所有人的平均等级;由于这个平均等级不一定是整数,所以要四舍五入。比如我给的数据中,第一关,我方信长1级,其他有5个都是99级,所以敌方基础等级就是1加上5个99再除以6,是82.67,四舍五入就是83,所以这关的小兵都是83级。
第二,如果信长等级高于(其他人的)平均等级,则敌方的基础等级就是把第一条得到的等级再与信长的等级进行平均(就是相加再除2),因为结果也不一定是整数,所以要把小数部分去掉。比如我给的数据中,第一关,我方信长99级,其他5个人都是1级。按第一条算的平均等级是17.3级,四舍五入是17级。然后再和信长等级99平均,就得到58,所以这一关中敌方小兵都是58级。
就是这样子,很简单的两点。另外,友军的等级也是按这两条算的,就是和敌方基础等级一样。需要再说明的就是有名字的将领和有些比较难的关卡有些小兵是在基础等级基础上再加上一个修正值的。
2006-11-29 15:03
xgz8864
我以前玩过满好玩的 我想回味回味 楼主有没网址 我想下载玩玩:Th:^%
2006-11-29 22:08
俺是马甲
[quote]原帖由 [i]xgz8864[/i] 于 2006-11-29 15:03 发表
我以前玩过满好玩的 我想回味回味 楼主有没网址 我想下载玩玩:Th:^% [/quote]
论坛里搜一下就是了,
好象[url]www.china1000.com[/url]这里有,速度不错
2006-12-2 09:38
chenkefeng110
没办法啊,工具下了不少,可惜信长就是玩不了,一进战斗就弹出。。。。:angry:
2006-12-2 10:39
俺是马甲
[quote]原帖由 [i]chenkefeng110[/i] 于 2006-12-2 09:38 发表
没办法啊,工具下了不少,可惜信长就是玩不了,一进战斗就弹出。。。。:angry: [/quote]
是XP系统吧,装个南极星2.30,开中文繁体AUTO就可以不退出了,我一直这样
高版本的南极星可能不行。
不过,只开南极星2.30还是会乱码,所以再加上W2kXpCJK(也称化繁为简)这个软件
2009-5-25 13:38
putying2008
前面都没看懂~结论看懂了~就是要压信长等级~不能比其他人的平均等级高太多,
不然敌人等级要上个档次=-=
2009-5-25 14:34
KYOKO
没想到当年还回帖了,汗:funk:
现在看得比较仔细了。最后说明是比较简单的,可是,要得出这个简单的结果,不容易啊:^%
2009-11-4 15:44
warrick19
高手啊,先顶起,慢慢研究
2009-11-4 16:12
dimeterio
我无责任质疑一下,光荣历来是舍尾,而不是四舍五入,所以略存疑。
2009-11-4 21:31
romadream
相当惊人....做研究的太少了...我是异常的佩服啊....
2009-11-29 14:40
Arsuro
支持一下楼主,顺便问一下,这代的敌我双方的最高等级是多少?看到有朋友说我方是99,但是敌方会超过。但是基于上文的理论,敌人应该是就是99级到顶了吧。
页:
[1]
Powered by Discuz! Archiver 5.0.0
© 2001-2006 Comsenz Inc.