碧蓝航线抽卡模型#
注意
GGanalysis 提供的预定义模型没有考虑 200 抽天井的情况,如需考虑此情况请参照此 示例代码 。
碧蓝航线的预定义抽卡模型按卡池 彩 金 紫 道具数量进行模型命名,例如1彩2金3紫模型命名为 model_1_2_3
,此例中预定义的彩、金、紫道具名称分别为 UR1
SSR1
SSR2
SR1
SR2
SR3
。
使用时输入初始道具收集状态和目标道具收集状态,模型以 FiniteDist
类型返回所需抽数分布。
参数意义#
init_item
初始道具收集状态,一个包含了已经拥有哪些道具的字符串列表,由于 sphinx autodoc 的 bug 在下面没有显示
target_item
目标道具收集状态,一个包含了目标要收集哪些道具的字符串列表
预定义模型#
- gacha_model.model_1_1_3(target_item: list = None) FiniteDist #
不均等概率集齐道具抽卡类
- gacha_model.model_0_3_2(target_item: list = None) FiniteDist #
不均等概率集齐道具抽卡类
- gacha_model.model_0_2_3(target_item: list = None) FiniteDist #
不均等概率集齐道具抽卡类
- gacha_model.model_0_2_2(target_item: list = None) FiniteDist #
不均等概率集齐道具抽卡类
- gacha_model.model_0_2_1(target_item: list = None) FiniteDist #
不均等概率集齐道具抽卡类
- gacha_model.model_0_1_1(target_item: list = None) FiniteDist #
不均等概率集齐道具抽卡类
import GGanalysis.games.azur_lane as AL
# 碧蓝航线2金3紫卡池在已有1金0紫的情况下集齐剩余1金及特定2紫的情况
dist = AL.model_0_2_3(init_item=['SSR1'], target_item=['SSR1', 'SSR2', 'SR1', 'SR2'])
print('期望为', dist.exp, '方差为', dist.var, '分布为', dist.dist)
处理天井示例代码#
import GGanalysis as gg
import GGanalysis.games.azur_lane as AL
# 对于 1_1_3 带200天井的情况,需要单独处理
dist_0 = AL.model_1_1_3(target_item=['UR1', 'SSR1']) # 未触发200天井时
dist_1 = AL.model_1_1_3(target_item=['SSR1']) # 触发200天井时
cdf_0 = gg.dist2cdf(dist_0)
cdf_1 = gg.dist2cdf(dist_1)
cdf_0 = cdf_0[:min(len(cdf_0), len(cdf_1))]
cdf_1 = cdf_1[:min(len(cdf_0), len(cdf_1))]
cdf_0[200:] = cdf_1[200:]
# 此时 cdf_0 就是含天井的累积概率密度函数