咸鱼之王吧 关注:226,881贴子:3,454,873
  • 5回复贴,共1

另起一贴,还是关于消耗周活动开道具的讨论

取消只看楼主收藏回复

因为我一直以为开道具是独立概率,加保底代码这种模式,这样的话基本不会出现超过1000个还拿不到的情况。
但实际上很多朋友都超过了这个数,于是我就发贴探讨了一下,无奈被人喷我是凡尔赛。可是我发帖的意思是讨论一下为什么开道具的情况和我实际的理解不同,根据贴中其他吧友给的数据(虽然我不知道他的数据从哪来的)我大概弄明白了究竟是什么原因。
实际上,就是道具说明中,25%是综合概率,而不是单独概率。
意思就是:
1、如果前一次开出了道具,那么这一次开出道具的概率为1%
2、如果前两次开出了道具,那么这一次开出道具的概率为5%
3、如果前三次开出了道具,那么这一次开出道具的概率为30%
4、如果前四次开出了道具,那么这一次开出道具的概率为40%
5、如果前五次开出了道具,那么这一次开出道具的概率为100%


IP属地:四川1楼2024-09-17 17:25回复
    原贴:https://tieba.baidu.com/p/9177060515


    IP属地:四川2楼2024-09-17 17:25
    回复
      2025-08-12 21:22:16
      广告
      不感兴趣
      开通SVIP免广告
      写成代码就是以下这样。
      //独立概率25%+5个保底
      function Test1050_1(){
      var prev=0,curr=0; //
      var own=0,own250;
      for(curr=1;curr<=1050;curr++){
      //250保底代码,此处省略 这里基本用不上
      if(curr-prev>=5){prev=curr;giveGold();own++;} //前4个没出直接给道具
      else if(parseInt(Math.random()*100)<25){prev=curr;giveGold();own++}
      else giveOther();
      if(own==250) own250=curr;
      }
      return [own250,own];
      }
      独立概率25%+5个保底的话
      根据我的模拟结果
      大部分会在700-800的区间拿到250个,做满的话在320-350这个区间。
      当然这个现在只能做梦了。


      IP属地:四川3楼2024-09-17 17:28
      收起回复
        //综合概率25%+5个保底
        function Test1050_2(){
        var prev=0,curr=0;
        var own=0,own250;
        for(curr=1;curr<=1050;curr++){
        //250保底代码,此处省略 这里有一点几率用上,大概2-5%左右
        if(curr-prev>=5){ //前4个没出直接给道具
        prev=curr;giveGold();own++;
        }
        else if(curr-prev>=4){ //前3个没出有40%几率得道具
        if(parseInt(Math.random()*100)<40){prev=curr;giveGold();own++}
        else giveOther();
        }
        else if(curr-prev>=3){ //前2个没出有30%几率得道具
        if(parseInt(Math.random()*100)<30){prev=curr;giveGold();own++}
        else giveOther();
        }
        else if(curr-prev>=2){ //前1个没出有5%几率得道具
        if(parseInt(Math.random()*100)<5){prev=curr;giveGold();own++}
        else giveOther();
        }
        else{ //前1个出了这次只有1%几率得道具
        if(parseInt(Math.random()*100)<1){prev=curr;giveGold();own++}
        else giveOther();
        }
        if(own==250) own250=curr;
        }
        return [own250,own];
        }
        这个应该是接近游戏真实数据的情况,根据我的模拟结果,大部分会在1000左右拿到250个道具,极少数拿不够,所以应该还有其他保底代码,就不写了。


        IP属地:四川4楼2024-09-17 17:29
        回复
          当然我顺便还测试了第三种情况
          //独立概率25%+无保底
          function Test1050_3(){
          var prev=0,curr=0; //
          var own=0,own250;
          var prob=25
          for(curr=1;curr<=1050;curr++){
          //250保底代码,此处省略 这里有很大概率用上
          if(parseInt(Math.random()*100)<prob){ //硬概率,一切交给天意
          prev=curr;giveGold();own++
          }
          else giveOther();
          if(own==250) own250=curr;
          }
          return [own250,own];
          }
          大概有接近3成左右的拿不到。


          IP属地:四川5楼2024-09-17 17:30
          回复
            醒醒吧,没有玄学,几次一开就是个笑话。


            IP属地:四川6楼2024-09-17 17:48
            收起回复