游戏王masterduel吧 关注:186,363贴子:8,136,033
  • 1回复贴,共1

回复:发一个概率计算器

取消只看楼主收藏回复

简单讲一下使用方法
假设我有这样一个虫惑魔卡组

我想计算开局至少有一张虫妹和一张红坑的概率,注意到我带了三张万宝槌滤抽(做演示)
那我可以编写一个如下格式的YAML文件


其中给万宝槌定义了两个效果
1. 当手牌没有虫妹时把所有手牌洗回卡组重抽
2. 当手牌没有红坑时把所有手牌洗回卡组重抽
运行程序得到如下结果


IP属地:日本2楼2023-05-06 07:20
回复
    再举一个实用一些的例子
    比如以下这个源数卡组使用小世界当关键检索卡,

    我想知道如果把小世界换成行星探索车后抽到“好手牌”的概率
    “好手牌”定义为至少一张场地卡(或能直接检索场地卡的卡)+至少一张解前场的卡+至少一张解后场的卡
    那么我可以这样写



    其中源数场地或者能直接检索源数场地的卡被标注标签“field”,解前场的卡被赋标签“solve-front”,解后场的卡被赋标签“solve-back”。我希望后手的6张卡中这三类卡至少都有一张。
    能用小世界互相检索的卡被赋标签“xsj”(除了源数壁)
    小世界有三个效果:
    1. 当手上没有场地("field")时,除外自己手牌中有“xsj”标签的怪,把牌组中一张源数壁加入手牌(这里省略了除外牌组中跳板的效果)
    2. 当手上没有解前场的卡时,除外自己手牌中有“xsj”标签的怪,把牌组中一张解前场的卡加入手牌
    3. 当手上没有解后场的卡时,除外自己手牌中有“xsj”标签的怪,把牌组中一张解后场的卡加入手牌
    使用全局变量“usedxsj”确保小世界一回合只能发动一次
    万宝槌有两个效果:
    (如果手上有小世界优先使用小世界)
    1. 如果手上没有场地,则把所有手牌洗回卡组重抽
    2. 如果自己手上的解场卡总数小于2,则把所有手牌洗回卡组重抽
    (可能不太智能,懒得详细写了)
    模拟10万次后得到结果

    即得到“好手牌”的概率约为57.87%
    把小世界的count改成0,行星探索车的count改成3后,再执行程序,得到

    此时得到“好手牌”的概率约为54.58%
    于是可以看到使用小世界比使用探测车得到“好手牌”的概率能提高约3%


    IP属地:日本6楼2023-05-07 02:33
    收起回复