暴雪的随机是不是有什么问题?

  • 大厨麦当牛
    有追智商杯的都知道智商杯是随机对随机,基本上谁随到虫族谁就赢。
    按道理说三个种族,打bo7的话很难连续随到同一种族的,但昨天孙一峰就连续随机到5把虫族。概率为1/243
    而且这种事似乎也不是第一次发生,据说黄五人孙六神的称号也是一次智商杯里连续随到同一种族而得来的,然后智商杯按一周一次来算的话至今也不到100次。
    这是不是有点不科学?
  • k
    kz.lj
    我只知道现在很多游戏已经开始用伪随机了.
  • 夏影
    自己拿概率算嘛。。。(1-1/243)^100=0.662 也就是100次智商杯说至少有33%以上的几率有至少1次连续随到5把虫族,而连续5把随到同一种族的话100次智商杯里有71%以上出现一次或更多,这还仅限于算F91一个人

    两个人一起算个话就是200次0.662^2=0.438,就是说56.2%几率出现一次5连虫,至于同一种族已经高达91.6%了

    拿概率说事的人都是不懂概率的人。爱因斯坦有名言 The most powerful force in the universe is compound interest.
  • 大厨麦当牛
    楼上的你的数值看上去大,但仔细想想这是100次里出现1次的概率吧,33%已经很小了。100次里一次都不出现占66%说明这种情况100次里都见不到一次才是正常的。同族虽然高达91%,但这同样算的是100次里至少出现1次的概率是91%,问题是现在加上黄五人和孙六神都3次了。
  • d
    deadbeef
    意思是以前的游戏都使用硬件生成真随机数?
  • d
    deadbeef
    如果单次事件发生的几率是P0
    那么N次实验中事件发生M次的几率是
    P(N,M)=P0^M*(1-P0)^(N-M)*C(N,M)

    所以至少出现3次的概率是
    1-P(200,0)-P(200,1)-P(200,2)
    结果也有0.446 跟丢硬币的概率一样
  • a
    ainopara
    炉石里匹配是按照你当前的卡组对各个职业的胜率来的。比如你做了一个专门克制猎人的卡组,遇到别的职业认输,遇到猎人就杀,赢猎人几局以后就匹配不到猎人了。你一换别的卡组,又是满天梯的猎人。
    星际的匹配也不会是随便选的,肯定有规则在里面。
  • 9
    99th_angel
    我觉得楼里的人说的真伪随机不是计算机科学的那个术语,而是概率在游戏里的表现形式,比如说一个掉率10%的任务物品,究竟是1.每杀死一只怪都有10%的概率出,还是2.在1-10之间随机一个数x,你杀到第x只的时候出,甚至是3.前五只都不可能出,在第6-10之中随机选一个出等等。毕竟影响游戏体验的,如果采用1的方式理论上是有人杀100只都不掉的,岂不是要崩溃了。

    ——发送自S1 Pluto
  • z
    zerocount
    咦???
    不是正相反吗?
    是输了猎人n次之后 做了一个专门克制猎人的防速攻卡组 然后就连续遇到脏牧和苟战再也不能“愉快地”5分钟输一场只能憋屈的20分钟输一场了么
  • b
    bbf10000
    这楼里说的伪随机是真.伪随机,直接把random用到游戏里面对脸黑玩家很不友好的。脸白玩家在关键时刻刀刀暴击,脸黑玩家有时候会刀刀闪避。要是在合成强化的地方用random,还会被脸黑玩家怀疑暗改概率。所以有些策划就改用真.伪随机了,当然更简单粗暴的方法就是不用随机,譬如lol里面的攻击YY下后的下一次攻击附带XX效果。
  • a
    alaya
    这黑法新颖别致,有想象力,我给8分

    多读点书懂点常识没坏处,文化程度低的话相信“玄不救非氪不改命”八字真言也可
  • 9
    99th_angel
    怎么可能……我说的是普通的任务道具,不是boss掉的那些橙装紫装
  • f
    frosta
    诶?主楼说的不是SC2?
    关于设计掉落那真的是另一门学问了,就像D3这种主创一次又一次出来声明掉落随机的游戏,玩家也会yy出一整套奇怪的规则,体感永远是心理学占主要地位

    当然我个人认为,至少从经验来看,大部分设计师都不特意修改会产生“大数据量”的随机机制。比如说暴击,除了特殊设定以外(D3的破碎戒),大部分游戏的暴击机制都是遵从统计学规律的。再比如说lz提到的随机种族,我相信随机10000盘到最后会无限接近1:1:1
  • X
    Xperia
    伪随机就是出了一个团结以后,巅峰620血岩30万不出第二个
  • 奥柏伦亲王
    看了这帖子我才知道原来真的有人相信玄学……
  • g
    gelamas
    事实上是没有真随机数的,都是加入大量的变量让结果看起来随机,d2的掉落有一个参数就是坐标,被玩家摸透了随机数算法然后把游戏玩坏的例子也不是没有
  • a
    alaya
    虽然我知道D2D3玄学多,不过哪里的玩家能通过摸透Seed的值算出随机数来估计也够去到美国不知所踪了吧……
    坐标只是参数之一,用时间做参数生成Seed那就几乎不可能重复了
    同理还有D3传说中的房间掉落列表也是无法证伪的,因为你不可能在一个房间里面呆足够长直到所有掉落出现,就PTR20倍掉落而言,我感觉房间掉落列表不存在,最多建房间以后所有的掉落都是同一个seed
  • 天妇罗
    人脑所认为的“随机”和真正的“随机”是不一样的。用最直接的随机方式播放曲库,人反而会觉得不够“随机”,经常重复。同样,最单纯的随机在游戏上也会出现平衡性问题,war3剑圣的暴击采用PRD就是一个经典的例子。
  • 逻辑自闭症
    我现在更喜欢执政官模式,看91花式坑队友

    ----发送自STAGE1 App for Android.
  • セト
    如果F91说我接下来就要5连虫族 然后他真的5连虫族了 那这个1/243还值得感叹一下
  • g
    gelamas
    别,我可没说d2被摸透了,我只是说d2的因子有坐标,有些游戏被摸透了,这是两个事
  • 小ghoul
    暴雪的随机真心有问题,我刷蛋刀刷了3年了,出的全是主手
  • 暗黑の命运
    随机数被玩坏的例子数不胜数,FF12开箱子就是。。。。。。
  • b
    blastoderm00
    随机数被玩坏的我映像最深的就是街机圆桌骑士,已经给人摸透到选谁,在哪跳几下,下面那个箱子出啥的程度。结果视频全是奇怪的舞蹈
  • 地刺
    暴雪的"随机"以我暴白多年的亲身体验,那就是出过的东西就会反复再出,很久没出过的,还是不会出

    下图全无ps 是我一个20小时的蛮子 全是打出来的
  • s
    shineaslin
    多好,直接转化
  • a
    alaya
    没玩过FF12,你说的是不是这个东西?http://bbs.ffsky.com/forum.php?mod=viewthread&tid=1715168
    这个如果不是玄学的话,要么是后门,要么就是程序员DEBUG的时候忘了把随机数生成器改回来了,要知道为了重复测试一些低概率事件,常用的一个方法是每次运行程序的时候从某个数串里取同一个数,这种情况是可以通过复杂的行为重现的
    这楼里也说了,在现在重视随机性的各种网游里,解决这种可重现性只要把随机因子改成时间地点的函数就可以了,连补丁都不用下。除非有大量证据证明某种可重现性,就不要相信玄学了
  • g
    galm2pixy
    伪随机被破解之前就是真随机,我觉得不要想太多,就是脸的问题不要不承认......
  • 雷之
    除非知破解函数,不然和真随机没有差别吧,起码试几万次再说
  • 雷之
    除非知破解函数,不然和真随机没有差别吧,起码试几万次再说
  • 3
    32767
    凡是带随机要素而且不开源的游戏就会产生玄学甚至宗教……
    最近这种感觉越来越强烈了……
  • 救死扶伤魔力瞎
    游戏圈里面我第一次接触“伪随机”是某个dota科普里面的,现在dota2自己就在用这个名词,简单地说就是

    以jugg为例,剑舞是36%几率出暴击,实际上是第一击1/7、没出就补偿性质地第二击2/7、不出就3/7,依此类推第七下你rp再差都是7/7也就是必暴。这样一方面防止容易n连秒人(例如已经成梗的17%),一方面照顾非提。

    不过这个1/7怎么算来的我忘了,会算的人麻烦指点一下
  • 暗黑の命运
    S1的程序员比宅男还多,不懂就不要现了好吗


    99%的游戏随机数是这样的计算过程:1给我一个初始随机种子A 2每次取随机数的时候,把A经过一系列运算,得到随机数B 3把B当作种子


    对应到FF12中,产生随机数的行为,对于玩家其实是可控的(比如造成伤害,开箱子,NPC或者怪物执行AI,这也就是为什么开箱子要求没有怪物),如果你已经知道了每次由A计算得到B的过程,配合玩家的行为,就可以破解掉游戏的随机数,现象就是对着自己一顿砍,砍到某一下的时候开箱子必出稀有物品。计算机是说一不二的,根本就不是什么所谓的玄学


    网游和单机的区别就是 1计算在服务器,你不可能通过你个人的行为控制整个服务器的随机数生成,2你不知道初始种子是多少,也没法知道服务器的随机数算法
  • 暗黑の命运
    这个和上面说的伪随机不是一回事,这个是WAR3为了保证平衡性和观赏性,策划对随机机制的人为控制,在手游圈一般叫做“保底”,比如你抽够了几千块必出最稀有的英雄之类的


    伪随机指的是我楼上说的那个,A到B的计算过程是固定不变的,所以结果在一定程度上是可以预测的
  • g
    gelamas
    你如何担保程序员不是二逼?
  • 救死扶伤魔力瞎
    http://www.playdota.com/forums/showthread.php?t=776795

    好吧找到了,谁能给数学废人的我解释一下C是怎么算出来的
  • S
    SYH617
    我想他不是这个意思,说的并不是随机数算法。
    这么说,20%暴击,平均每刀出暴击几率20%。真随机是第一刀暴击20%,5刀不暴击32.76%,砍10000刀有2000刀暴击。而伪随机就是第一刀暴击10%不到,5刀不暴击概率几乎为0,只有砍10000刀有2000刀暴击和真随机相同。
    至于为什么这个经常被称作伪随机那就是war3的锅。
  • I
    IOSYS
    期望DPS和真随机一样。1/7伪随机和36%真随机,打木桩DPS一样
  • d
    diyushizhe
    人家说的明明是“伪随机分布”,你们怎么就脑补缩成伪随机了?
    真随机伪随机是计算机科学的概念,目前还没有真随机。
  • 救死扶伤魔力瞎
    没地方喷盯上我了?

    裂魂人
    巨力重击现在也采用伪随机算法
    Greater Bash now uses pseudo random chance

    我只是如实反应DOTA这一侧使用这三个字的源头,而且官方自己就在用这个字眼,成我脑补咯?
  • d
    deadbeef
    假定C值给定
    第N次触发事件的几率为P(N)=C*N 不触发的几率则为 Q(N)=(1-C*N)
    连续试验N次才第1次触发事件的的几率为
    P1(N) = Q(1)*Q(2)*...*Q(N-1)*P(N)
    当N>1/C时 P(N)值恒为0 因为不可能超过N次不触发

    因此这个第N次触发的几率的期望E可以写作
    N*P1(N)对于N在1~1/C区间上的求和

    于是最后显示的总的几率就是1/E

    数学不是我的强项 这里写个简单的程序就能算出来了
    比如马上能试的 用JS写的话 在浏览器的地址栏或者调试栏就能试:

    1. var p = function(c){var p = function(c,n){var r=1; for(var i=1; i<n; i++){r*=(1-i*c)};return c*n>1&&r||n*c*r;}; var r=0; for(var i=1; i<(1/c)+1; i++){r+=p(c,i)*i}; return 1/r;};
    复制代码
  • d
    deadbeef
    顺便 我并不觉得这个随机分布是普遍用在除了暴击之类以外的地方的
    比如DOTA 2 WTF里常常见到的 连闪8~9次的PA 如果是根据这个算法 就根本不可能出现(除非命中不是触发事件 闪避才是)
    而且像这种称为伪随机实在不合适 随机并不是指的白噪声那样的均匀的分布 这里这个只不过是设计的比较复杂的随机分布而已
    只是那个暴击几率 从各种意义上来说 真的不能叫几率 倒是真的
    所以叫伪暴击率还比较贴切……

    另外再对上面给我科普没有真随机的说下
    并不是计算机里不可能得到真随机数 而是游戏中没有必要使用完全不可预估的真随机数
    事实上使用专门的硬件设备 是能够得到硬件真随机数的
    而就算不使用特殊的硬件设备 就连常见的LINUX中也有用于获得不可预估的真随机数的方法
    学术一点说 是使用熵池 通俗一点就是通过采集毫无规律性的键盘输入 鼠标坐标等随机事件 对生成的随机数产生扰动

    然而这种真正意义上的随机 并不是说他的分布更平均什么的
    真随机数的意义在于 他不可预估 而伪随机数在猜测出种子和算法的情况下 随机行为是可以准确预测的(比如一些被玩坏了的游戏)
    因此在密码学中 才会广泛的使用这种不可预估的随机数 以防破解隐患
  • s
    starash
    其实我觉得服务器装一个硬件的真随机数发生器挺不错的, 以真随机数做种子再经过算法生成一系列伪伪随机数, 这样就算算法被广告了也没有任何影响. 当然伪随机分布这些社会工程学设计还是要做的.