结论是在50%的胜率下连胜和连输或者连胜之后连输等等组合事件都是很可能出现的。这里是从另几个角度去聊天梯的胜率 和组队机制。
好多年前在炉石区发过一个算胜率的帖子,发现人们不了解全局概率和样本概率的区别,这里要先说明下,全局概率是真实概率,样本概率是抓取的样本部分的概率。好比扔硬币,正面朝上的全局概率是50%,如果我们只扔5次并以这5次的结果来统计出来的正面朝上的概率一定不是50%,可能是20%, 40%, 60%, 80%或100%。只有扔上万次甚至上亿次硬币之后统计的正面朝上的概率才会无限趋近于50%。在这个帖子里提到的胜率都是全局胜率,样本概率没有额外统计。
在50%的胜率下确实会出现连输和连赢的情况,而且对于天梯来说赢和输影响的不仅是一时的心情,还会影响宝贵的天梯分。这里要做的第一个模拟是:假设一个玩家在50%的真实胜率下玩了1000盘之后的他的mmr会变成多少呢?这里的1000盘是每天3盘将近玩一年的数据量,应该是中度dota爱好者的程度吧。为了简化模拟量,这里就假设赢一盘加25输一盘减25,mmr不会成为负数,mmr上限8000。为了公平起见,一次性模拟了1000个玩家,最后给出的是这1000个玩家的平均mmr。
1.1 静态胜率之55开
这里的静态胜率和之前的算50%胜率的帖子一样,玩家的胜率是全局胜率且不会变动。
这个图的横轴是mmr,纵轴是人数。这些玩家的起始mmr是1000。可以看到在50%的胜率下这1000个玩家的分数分布还是很符合正态分布的,由于分数掉到0后就不会继续下跌导致整体平均分比1000高了一点。而且在这1000个玩家里面还是有人能冲到3000的,这得是多好的运气...
如果起始mmr 4000,会不会效果更好一些呢?
这里可以看到经过艰苦卓绝的1年游戏后,4000分的中高端玩家有的成了6000大神,有的成了2000 trash。
对于6000分的大神,以50%的胜率玩一年会怎样呢?
即便是6000分的大神也无法逃脱正态分布的影响。由于8000封顶,6000分大神们玩了一年后平均分还掉了一点。而dota的实际天梯中是没有上限的,所以这个掉分可以认为是模拟的一点副作用。这个8000分的上限对主要结论的影响不大,主要是为下一部分服务的。
结论:对于绝对50%胜率的理想状态,玩家的mmr会无限趋近正态分布,由于dota的天梯没有负分,非常靠近0分的玩家越容易受到边界效应的影响导致分数稍微高于自己的水平
1.2 静态胜率之46开
对于某些玩家来说,50%的胜率是不能接受的,虽然他目前打出来的数据是50%胜率,但由于有很多nt队友,他的真实胜率其实是60% 或者40% 。接下来就模拟下非50%胜率的情况。为了简化数据,这里只模拟从4000分开始的玩家。
首先是对于45%胜率的玩家来说,玩了1000局之后的结果是这样的。
除了极少数人能保住4000分的基准线,大部分人已经掉队并慢慢融入鱼塘。对于55%胜率的玩家来说,玩了1000局之后的结果是这样的。
别看这些人起始不高,最后大多数已经步入6000分大神的行列,少数还直接登顶拿到8000分。
1000局的数据量还是有点大的,胜率差1%放到1000盘里面就会有很大的变化。不信你看44%胜率和51%胜率的玩家,和上面的比一比,是不是差距巨大?
胜率44%。
胜率51%。
这里可以笼统的说,在1000局的样本量下,全局胜率差1%最终的mmr就会差500左右。从这个模拟中可以总结出:要提高自己的真实胜率(真实水平)啊,哪怕1%的提高也会有很大的长期回报的。
2. 可能有的人会提出问题:怎么可能会有全局胜率这种东西。一个在6000分的局能打出55开胜率的人到4000分肯定可以叱诧风云横扫八荒了。事实上在dota里面也普遍存在着捕鱼这种行为。胜率的计算应该是实时的。接下来模拟的就是动态胜率的问题。
2.1 胜率函数
这里首先要面临一个怎么拟合胜率的问题。假设一个4000的玩家和一个5000的中路solo,4000玩家的赢面肯定比5000的低,也肯定比3000的高。用函数来表示的话,我们的选择有多项式,指数,三角函数,其他函数等。这里函数的选择有点抽象,如果没什么概念的话可以在纸上画一个正方形,从左下角到右上角画线,可以竖着或者横着画,唯一条件是只能往右和往上走,有哪些方式是合理的呢?楼主在胡乱画了阵子后找到了一个模拟的函数: y=tan(x^3)*15,把这个函数带入到我们的mmr系统下,结果是这样的。
对于一个4000分的玩家来说,他面对4000分的输的可能性是50%左右,面对5000分也有一战的实力,但面对6000往上就会大幅掉胜率。同样他在面对3000分的玩家没什么优势但面对1000分的玩家还是可以抠脚打的。
下面还有对于2000分和6000分玩家的输率模拟。 如果你问我为什么是输率而不是胜率,是因为开始想用的函数是cot而不是tan,因为cot可以少一点位移直接在原点构建函数,而且惯性的用cos/sin来写的程序,后来忽然想起来python有内置tan,再后来想为什么不直接用tan,然而到这个时候后面的框架都写好了,就只好用输率来代替胜率了。
2.2 模拟情景
这里的模拟情景是所有玩家都有同样的起始真实mmr,他们每次都会和自己的当前mmr档次的玩家打(这里的模拟类似solo mid,因为没有计算团队mmr),打的时候计算的胜率是按照2.1里面的函数去模拟的,赢了涨25输了掉25,0是下限8000是上限。为了验证这个模型,我们首先尝试让真实mmr4000分的玩家从4000分开始打,打上1年会怎样呢?
可以看到,对于真实4000分的玩家来说,以4000分的起始分玩上1000局,最终还是会在4000分徘徊,少有能冲到5000的,也少有能掉下3000的。
接下来是大家喜闻乐见的4000分玩家从2000分起始,玩上1000局是这样的。
可以看到这个4000分的中段玩家群大部分还是慢慢的爬出了鱼塘,虽然现在均分只有3500,但假以时日应该是可以达到4000分。如果仔细看这个分布的形态有继续右移,也就是继续上升的的趋势,这一点可以通过其他分析来拿到定性的结论,这里就不展开了。
如果4000分的玩家买了6000分的号去刷,玩上1000局是这样的。
可以看到这个玩家群体慢慢的掉下去了,而且和2000分爬上来的相比掉下去的相当,感觉再多玩点就要回到自己的真实mmr分数了。买号并不能改变自己的游戏体验,玩多了还是会慢慢回到真实mmr水平的啊。
最后是极其小众,但总是成为人们茶余饭后谈论焦点的8000分大神起小号问题。
可以看到1000局之后,这些8000分大神没有还在下面晃悠的,最低也是6500。其实对于这群人来说,在我的模拟程序下200局就已经全员6000+了,后面的只是在6000分往上慢慢爬。
从这部分可以看到,我们的动态胜率模拟还是可以基本胜任各种模拟情况的,而真实mmr对于当前mmr的影响也是显而易见的:想爬天梯最直接的办法是提高自己,磨砺自己,让自己的真实mmr高于当前mmr,并且保证自己的学习速度高于当前玩家群体的提升速度。
3. 有的人会提出我之所以不冲天梯是因为没时间。如果有机会给我天天玩,我也可以天天看录像提高自己,这样每天都提高一点,迟早我也是may皇A皇鸡皇X皇的水平,甚至可能超过他们的水平。其实刚才就提到了一个关键词:学习速度。在之前的模拟里面没有加入玩家玩一局就更熟练一点的情况( 虽然楼主经常出现越玩越不会玩的情况 )。接下来要模拟在加入了一点学习速度后的情况
3.1学习函数
对于一个新手dota玩家来说,最开始的学习速度是最快的,熟悉补兵,装备,兵线眼位配合,英雄相关性,刷钱的规划和打团的节奏等,这些都可以在日积月累的游戏中学习到。但由于moba类游戏一般很快就会形成金字塔式的天梯模式,低分局的众多玩家很多时候赢或输都会有点莫名其妙 比方说楼主 。而且dota文斗的气质很深刻,导致人们可能玩的不多,喷的不少,赢了就是ez mid,输了就是noob carry。
当然这也和我的经历有关,我感觉3000以下的局经常打着打着不是自己这边喷起来就是对面喷起来,哪边先公屏喷队友哪边输,而且弄不弄就是从对线崩到gg,而到了3500+喷的少了大家更各司其职不乱ping了,偶尔还能找点节奏点打出点翻盘什么的,局局都能完成从前期对线到中期gank补经济到后期大哥站出来 刷了送 的完整节奏,而首页局等6000+的高端局又变成了碾压态势,有的时候对线还没怎么看明白就20分钟高地跳舞了,还时不时来个22手狼人/蜘蛛等。这里的学习,按楼主的理解,应该是和当前mmr相当的,在低分局基本学不到什么,最多就是刷钱的规划,在顶分局也学不到什么,毕竟大家都是走节奏走体系,极其偶尔有职业下场的时候才会亮出过人的天赋强势碾压,反倒是在3000-5000分的局可以安安稳稳的探索各方面的效果。此外学习应该也受真实mmr和当前局势的影响,一个真实mmr5000分的玩家去到3000分的局应该是学不到什么的,一个真实mmr3000分的玩家到了4000分的局学到的应该比6000分学到的多。这是两个方向上的拟合。最后学习还受到胜率的影响,从实验室数据来说,正向的也就是赢了的学习更持久,而负向的也就是输了的局,短时间可能更有效但长时间留下的东西不如激励性的学习留下的多。综合以上的想法,
4. 以上已经基本模拟了一个人的情况,接下来要模拟组队的情况。假设你是v社的设计师,你要写一个根据玩家mmr相互匹配的程序,手里的数据有玩家的当前mmr,玩家的虚拟mmr,玩家近100局的胜率等等。
4.1 设计思路
从设计师的角度是要让玩家每一局都有挑战,保证匹配的质量,还要加入保护机制保证新手玩家有足够的练习空间,让捕鱼的玩家加速滚出鱼塘等等,这部分有一些基本想法,程序只有框架还没写好。