469MAPabu 发表于 2025-3-5 23:03:51

简单用代码计算了下新活动存活的概率

本帖最后由 469MAPabu 于 2025-3-5 23:07 编辑

期待已久的新活动规则终于发布了
对于发帖困难户而言不用发帖真是太好了
初看了下规则,感觉挺难活的,出于对最终存活概率的好奇,利用AI生成的代码简单计算了下概率,居然可以达到0.56!??比心里预期着实高了不少。
其实冷静下想想也是,过载的情况其实挺难触发的,1/3概率可以选到人最多的不扣血,1/3概率选到15,还有1/3选到25,只要6天扣15,1天不扣就可以存活,好像也不是很难(才怪)
所以战略就是随大流,混几天不扣血的日子,跟着大多数总是好的~

以下是代码以及预设的条件,有兴趣的可以进一步优化一下,把场地的随机性也考虑进去哟~

预设条件:
1、假设场地一直是【对战广场】无特殊规则。
2、玩家为1000人,玩家随机选择没有倾向
3、模拟次数为10000次

以下是代码(感谢kimi的贡献,AI真是太好用了)import numpy as np

def simulate():
    days = 7 # 活动天数
    initial_health = 100 # 初始血量
    players = 1000 # 玩家人数
    simulations = 10000 # 模拟次数
    survive_count = 0

    for _ in range(simulations):
      health = initial_health
      for _ in range(days):
            # 每个玩家随机选择一个属性
            choices = np.random.choice(['grass', 'fire', 'water'], size=players)
            # 统计每个属性的数量
            grass_count = np.sum(choices == 'grass')
            fire_count = np.sum(choices == 'fire')
            water_count = np.sum(choices == 'water')
            total = players

            # 确定场地属性
            max_count = max(grass_count, fire_count, water_count)
            if max_count >= 0.8 * total:
                # 触发属性过载
                if grass_count == max_count:
                  field_attribute = 'grass'
                elif fire_count == max_count:
                  field_attribute = 'fire'
                else:
                  field_attribute = 'water'
               
                # 所有玩家扣血
                player_choice = np.random.choice(['grass', 'fire', 'water'])
                if player_choice == field_attribute:
                  health -= 15
                elif (player_choice == 'grass' and field_attribute == 'water') or \
                     (player_choice == 'fire' and field_attribute == 'grass') or \
                     (player_choice == 'water' and field_attribute == 'fire'):
                  health -= 15
                else:
                  health -= 25
            else:
                # 选择数量最多的属性
                if grass_count == max_count:
                  field_attribute = 'grass'
                elif fire_count == max_count:
                  field_attribute = 'fire'
                else:
                  field_attribute = 'water'

                # 随机选择一个玩家的属性
                player_choice = np.random.choice(['grass', 'fire', 'water'])
                if player_choice == field_attribute:
                  # 不扣血
                  pass
                elif (player_choice == 'grass' and field_attribute == 'water') or \
                     (player_choice == 'fire' and field_attribute == 'grass') or \
                     (player_choice == 'water' and field_attribute == 'fire'):
                  # 克制场地属性
                  health -= 15
                else:
                  # 被场地属性克制
                  health -= 25

            # 检查是否被淘汰
            if health <= 0:
                break

      if health > 0:
            survive_count += 1

    survival_probability = survive_count / simulations
    return survival_probability

# 运行模拟
probability = simulate()
print(f"存活概率: {probability:.4f}")
最后再叠个甲,如果计算有错误,麻烦指正~如果看完感觉有用,别忘了留个追随~

娱乐法师火布偶 发表于 2025-3-5 23:08:20

活动的随机成分非常大,每天的场地也是随机的,而且我会开启作者可见模式,感觉某一天还是有可能直接过载的,其实很难预测结果了

Kaicneg 发表于 2025-3-5 23:14:08

大概一半概率咩,感觉脸黑的我不会中{:6_166:}

夏漏光微 发表于 2025-3-5 23:20:23

参考上一次 锯下七行
说不准也有个投票预期
不过比起宝可梦,由于损失的自己血量+三种属性切换,更像是猜拳版的黑暗游戏

咕里奇 发表于 2025-3-5 23:25:20

总之还是看脸的游戏,希望自己能够苟到最后吧...:'(

凯诺斯 发表于 2025-3-5 23:30:45

这次的活动随机性比较高惹,总之还是看运气吧{:6_169:}

毛茸茸兽兽 发表于 2025-3-5 23:31:20

比二分之一概率多一点点咩(´×ω×`)不过俺这个非酋……要遭咯

TanZhe 发表于 2025-3-5 23:33:20

猜拳我只会选择一种,就按顺序轮流选吧。

snafa 发表于 2025-3-5 23:35:49

放弃思考,相信运气(真的有运气吗)

秘技小浣 发表于 2025-3-5 23:48:33

惹怎麼大家寫程式都這麼厲害

莲一 发表于 2025-3-5 23:57:39

随大流,混几天不扣血的日子,跟着大多数总是好的这句话挺有道理的,毕竟超载的情况还是很少的,但是如何去预知当天的场地属性就很难说惹

SweetUncle 发表于 2025-3-6 00:06:32

:'(想随大流但是到时候是不可见模式噢,感觉只能随缘了

cdcai 发表于 2025-3-6 00:16:39

希望这次能活到最后吧

锦书致南辞 发表于 2025-3-6 00:54:08

一切随缘,希望不要含泪拿下参与奖惹,每天的抽奖都是四等奖,我觉得是时候时来运转了

WAJG 发表于 2025-3-6 01:41:50

我是超级非酋,不是100%的概率都不行惹,鼠定了

Freeze123 发表于 2025-3-6 02:01:27

氮素毕竟素玩家选择不是机器选,感觉最终肯定会有偏差惹

yota 发表于 2025-3-6 02:10:16

我是从上往下刷的58帖子,存活概率从0.9-0.8-这篇的0.5+,有点看晕古七了,不知道哪个更准一点@@,算了活不活都是命TVT

boowak03 发表于 2025-3-6 07:11:00

感谢分析,活动随机性还是挺大的,随大流应该是比较稳妥的策略

真的不会取名字 发表于 2025-3-6 07:32:20

其实看规则来说跟着大部队走一般是没有问题的,只要一次没扣克制分的话大概运气好点就能活;P

you9632587 发表于 2025-3-6 08:19:39

以前这类活动好像还从来没出现过80%的人挤到一起的情况,估计这次也不会出现吧
页: [1] 2 3
查看完整版本: 简单用代码计算了下新活动存活的概率