【数据党】什么时候用盖亚的钥匙比较稳?——限定池中钻石投入与产出的关系分析(下)(4月17日更新)
#-- 最后更新于: 2020年4月17日 --#
(最新的更新请翻至文章末尾)
#-- 以下更新于: 2020年4月17日 --#
前文链接:
上一节主要计算出了保底机制下的综合概率,这一节的内容将更加偏向实际应用。
本文主要介绍了:
① 一种使用动态规划算法的保底机制下概率计算方法;
② 不同抽取次数下,获得up英雄的数量及概率;
③ 指定概率下,至少获得一定数量的up英雄,需要的抽取次数;
④ 不同抽取次数下,触发保底的次数及概率;
⑤ 保底机制下抽卡的综合概率;
⑥ 在普通池与限定池抽SSR狗粮的综合概率;
⑦ 使用Python网络爬虫获取每周up英雄;
⑧ 一次抽卡实录。
文章篇幅较长,而且TapTap写太多了会溢出,所以本攻略将分为上(①②③)、中(④⑤⑥)、下(⑦⑧)三节,可按需阅读。(或者直接看每一部分的总结)
七、一种Python实现的获取历史每周up英雄的网络爬虫
我在论坛里面似乎没有找到周更的历史up英雄列表,所以就打算自己开一个。但是我又懒得每周更新,所以就写个爬虫大家自己用好了。
1. 主要功能:
① 从Taptap邂逅在迷宫官方公告中爬取、解析并保存所有限时SSR信息,包括公告发布时间、up起止时间、英雄名称。
② 实现了简单的命令行交互。可以展示数据、筛选英雄、预测下周up英雄。
2. 技术亮点:
① 每次将爬取的数据保存,避免每次运行时重新爬取浪费时间、占用对方服务器资源;同时将代码与可更新数据集成在同一个文件,避免代码转移或误操作造成的数据丢失或损坏(最近学的一个项目,拿来试试)。
② 利用prettytable库实现较为美观的展示效果。
③ 利用pypinyin库实现同音查询,减少输入错误导致的查询失败。
④ 有较为完善的异常处理机制,提高程序鲁棒性。
⑤ 有较为友好的命令行交互机制,上手迅速。(写的时候爬虫五分钟,UI两小时…)
3. 项目结构:
main.py
4. Python版本:
3.6
5. 依赖包:
requests, bs4, lxml, datetime, prettytable, pypinyin
6. 运行方式:
① 安装python 3.6及以上版本(3.5及以下版本可能也可以运行,但不能保证稳定性),并将其添加到环境变量;安装对应pip。如果已经安装请跳过此步。
② 复制代码到本地,另存为main.py(其他名字也都行),路径中尽量不要出现中文。
③ 打开cmd窗口(Windows)/终端(macOS)
④ 安装依赖包
>>> pip3 install requests, bs4, lxml, datetime, prettytable, pypinyin
⑤ 运行main.py文件
>>> python3 d:/文件夹1/文件夹2/main.py
⑥ 等待一小会儿(数据初始化)后,跟随命令行引导使用即可。
运行示例:
特别注意:以下所有运行结果均截图于2020年4月17日,有较强的时效性,仅供参考。
#图2:初始化界面
#图3:过往up信息
注:“活动up”是指苏鲁特、妮可等非周期更新且持续时间较长的英雄。
#图4:查询指定英雄
注:查询时允许同音错别字、直接使用拼音,不支持模糊查询。
#图5:查看各英雄上次up距今时间
注:如果某一英雄在此之前从未非活动up过,则在本表格不会出现。(使用本功能估算下次up英雄时格外需要注意这一点)
最有用的大概就是这个功能了,某一英雄最近一次up越遥远,下次up的概率显然越大。但需要注意的是,在使用历史数据测试时发现,每次up的英雄不一定是距离时间最长的,一般来说,钻石英雄用前5~6个英雄、恒晶英雄使用前2~3个英雄估计较为稳妥。
八、一次抽卡实录
开头的时候我说过写这篇攻略其实是为了抽布姐,下面实际应用一波之前的结论。
我手里一共有约442发的钻石(61.9k)与5张特殊十连,算上抽完领的成就,预计能抽500发;而我目前需要10个布伦希尔德本体,另外我手里有3张自选券,所以最少抽到7个即可。
查表1可知500发抽到10个及以上的概率为36.6%,抽到7个及以上的概率为90.1%。感觉很稳,下面开抽:
抽取时间:2020-4-14 13:13:46
具体结果:(狗托预警)
#表6:抽取结果
共用340发,抽到10个布伦希尔德,成功达成目标;另外再查表1可知340发抽到10个及以上的概率为3.4%,说明小概率事件也是有可能发生的(误)其实说明如果官方数据正确、我的计算正确,那我似乎耗掉了许多运气…
————————————完结线————————————
这篇攻略到这里就结束了,感谢你看到这里~
相关攻略:
PS:如果你对本攻略有任何疑问、意见或建议,欢迎在评论区告诉我~
PPS:码字不易,如果本篇攻略对你有帮助的话,留个赞呗!