逆水寒手游吧 关注:403,977贴子:13,372,606
  • 11回复贴,共1

昨天讨论了一下杀熟,今天想自己试着写一下

取消只看楼主收藏回复

因为装备掉落没有固定概率,所以选了抽奖概率会公示的天上做替代,来证明杀熟是否真的存在
第一种是纯粹的写死概率,不关心所谓杀熟
第二种是上了个简单的kmeans和协调过滤实现简单杀熟
特征值我选择了【注册时间,上线总时常,充值金额,参与活动次数,日活跃时间,周活跃时间,月活跃时间,上线天数】
在保持写死的概率前提下,上述特征值除了充值金额,其余值越大,概率越低,充值金额越大,概率越高;
第三种是有5w个用户id,同1一样写死概率,但是每次抽奖必会有一个用户中天赏,抽中这个用户的概率用伪随机
这种是为了证明网易的同行没有偷懒但是没有多勤奋,属于差不多得了那种
下图是公示的天赏概率


IP属地:江西来自iPhone客户端1楼2023-09-12 14:24回复
    其实应该还有其他特征值 但是楼主不是搞互联网的 有想法的可以在这层下面推荐噶


    IP属地:江西来自iPhone客户端2楼2023-09-12 14:25
    收起回复
      2026-05-22 03:39:28
      广告
      不感兴趣
      开通SVIP免广告
      没事儿码点思路 等回家慢慢磨代码


      IP属地:江西来自iPhone客户端3楼2023-09-12 14:26
      回复
        我也不知道有多少同行会看,所以先说一下
        因为增加Kmeans和协同过滤以及根据特征调整概率会使代码更复杂。所以我这里简化一下思路:
        使用Kmeans将用户进行分类,例如分为三类:高活跃、中活跃、低活跃。
        根据分类结果和用户的特征,动态调整抽奖概率。例如,如果某用户充值金额非常高但活跃度较低,可以增加抽到天赏的概率。
        使用协同过滤来为用户推荐不同的天赏,使得高活跃用户更有可能抽到天赏


        IP属地:江西来自iPhone客户端4楼2023-09-12 14:32
        收起回复
          半天没人?淡季贴吧


          IP属地:江西来自iPhone客户端5楼2023-09-12 14:33
          收起回复
            刚写好第一种,做了一些修改
            首先是200抽保底,然后我也是200次起抽 一共点了四次就是800抽 看看目前来看这个概率挺符合非洲人的


            IP属地:江西来自iPhone客户端6楼2023-09-12 15:04
            收起回复
              刚写好带调整因子的算法, 但是review的时候发现,既然带了调整必然是和公示的概率不一致的。
              后来意识到这是用天赏的概率来测试装备掉落情况,所以不论结果怎么样,我想大家理性一点。
              毕竟装备的掉落不会和天赏一样低,而且我只设置了2种天赏,而装备光独珍就有7件了


              IP属地:江西来自iPhone客户端32楼2023-09-12 17:20
              回复
                结果有点出乎我自己的意料,代码逻辑就是充值越多,概率越大,但是如果在线时间那些越长,概率也会下降
                然后2张图分别是一个小号,和一个开服号,我没有带单位,除了金额和次数,其余全部理解成小时就行
                开服号我是按照7月1号注册 每天在线8小时,其余时间都是乘了2/3 打了点折比较符合一般玩家
                小号随便填了小的数字,不用特别关心
                唯一相同的就是冲了一样的3000块钱,概率基本是差不多的
                p3是如果你充的少,嘿嘿嘿,那不好意思,小号一样很黑
                再补充一下,说实话我也不知道为啥200抽会多出那么多天赏,我确实调整了动态概率,但是我设置了0.4的阈值的 可能哪有bug,但毕竟是一个简单的控制变量法的比较,也不用特别关注25个天赏,有点偷懒大家包涵


                IP属地:江西来自iPhone客户端33楼2023-09-12 17:57
                收起回复
                  2026-05-22 03:33:28
                  广告
                  不感兴趣
                  开通SVIP免广告
                  楼主下班了 等我回家吧最后一个最有可能的也写出来


                  IP属地:江西来自iPhone客户端35楼2023-09-12 18:23
                  回复
                    重新更正一下33楼的结果,结论有要修改的地方
                    我之前只是简单地调整了概率而没有考虑概率的合法性。如果我通过用户特性提高了某个概率,可能会降低其他概率的可能性,甚至有可能产生概率值超过1的情况,这样的输出当然会不符合预期。
                    我需要确保所有调整后的概率之和仍然等于1。
                    所以先计算每个奖品的调整概率。
                    如果总概率超过1,需要按比例缩小每个奖品的概率,使总概率重新归一。
                    但是还会出现就是紫色偏多的情况,是因为当我对概率进行调整时,尤其是大幅度提高了充值金额带来的概率调整时,可能导致天赏、狐狸和紫色的概率明显增加,而红色的概率相应减少。
                    为了保持红色最常出现的性质,我进一步调整系数。其中,充值金额的影响应该相对较小,以保证其影响不会太过明显。
                    然后就出现一下情况:

                    白圈图是1000抽的情况,可以看出来,正常200抽是没有多大区别的,但是当提高抽天赏的次数,还是小号确实会因为我给的那些特征值,出现一些比较欧的情况,但是话说回来,1w8左右都下去了就那么点,也不能算欧了吧


                    IP属地:江西40楼2023-09-12 20:19
                    回复
                      好了,现在再开始写最后一种可能的代码


                      IP属地:江西41楼2023-09-12 20:20
                      收起回复
                        好了掉了两根头发后痛定思痛决定不写最后一个了,因为假设用户a每次抽奖都会出现一个随机游标让另一个用户b必定获得天赏什么的上来就是多线程,然后还要考虑异步和服务器压力那些,还不如第二个上算法来的方便,开贴说的差不多得了那种方案是我想的太轻松了,给网易的同行磕个头了。也可以进行一下总结了。
                        总结:
                        200抽以内,无论是否存在杀熟代码,都不会体现的特别明显,如果是写死的代码,那么非洲人会更多;如果是上了一些杀熟代码,其实也算利好消息,毕竟比起写死的代码,出天赏和狐狸的的次数还多了那么一两次。
                        但是我并没有说网易没有杀熟代码,
                        当我开始1000抽时,小号确实出现了天赏次数比大号多的情况,差不多在3个石头和一个狐狸的水平。但是话说回来都1000抽,四舍五入也是1w5左右的钞票,谁还在乎这3个石头呢
                        所以杀熟这个说法我还是不认同
                        ok,fine,总结完成,再说一句,上面的代码其实也是我工作摸鱼随便写了点的东西,肯定比不上网易专业的开发团队,但是基本也能看出来,杀熟只有在大量数据的支持下才能实现,练一个新号就说大号脸黑的建议洗把脸,顺便再开一个号可能马上就黑了


                        IP属地:江西45楼2023-09-12 21:05
                        回复