/ArtifactJunkFilter

为原神圣遗物筛选提供工具

Primary LanguagePython

使用yas-lock时需要注意:请使用支持V2格式的yas-lock1.0.9-beta2版本,下载链接在这里:https://github.com/ideless/yas-lock/releases/tag/v1.0.9

ArtifactJunkFilter

ArtifactJunkFilter 是一款狗粮过滤器,它可以帮助你筛选出那些不需要的圣遗物,以便更好地管理你的圣遗物库。

算法

ArtifactJunkFilter 使用两种算法来评估圣遗物:

基于提瓦特小助手的评分算法

该算法采用预定义的权重和分数计算方法,对圣遗物的副词条进行评分。该评分系统考虑了各个副词条的相对重要性,并根据它们在游戏中的实际效果进行加权。通过计算每个副词条的加权分数之和,我们可以得到圣遗物的总评分。根据预设的评分阈值,可以将评分较低的圣遗物视为 "狗粮"。

小助手的评分算法总体看来还算合理,但是细节上还存在一些问题,日后会结合ysin等评分标准,开发更合理的评分标准。

基于体力价值论和蒙特卡洛模拟的"毕业标准"算法

该算法首先计算所有可能的副词条排列组合及其对应的满级期望词条分数,从而得到特定配置下圣遗物的分布。然后,利用体力价值论来确定特定抽数,例如,假设在 10 天内刷一个圣遗物副本,每个部位圣遗物的期望抽取次数为 ((180 * 10) / 40) / 5 = 9。基于这个抽数,我们可以计算每个部位圣遗物的最大满级期望评分。

由于样本空间较大(通常大于 200),且概率分布不均匀,直接计算特定抽取次数下的最大值期望是非常复杂的。因此,我们采用蒙特卡洛模拟来估计这个期望。通过在圣遗物分布中随机抽样并记录每次抽取的最大值,重复多次实验,我们可以得到最大值的平均期望。这个期望值可以作为圣遗物毕业标准,即达到或超过这个期望值的圣遗物被认为是优质的,而低于这个期望值的圣遗物则被视为 "垃圾"。

圣遗物推荐与遗漏算法

该算法旨在最大化圣遗物库的价值,通过根据你选择的配置对圣遗物进行分配,并确保在分配过程中不会遗漏高质量的圣遗物。算法分为两个步骤:

  1. 配置排名:首先,根据你选择的配置对配置进行排名。排名依据两个标准:深渊使用率和有效词条数量。深渊使用率表示该配置在游戏中的受欢迎程度,而有效词条数量则代表了配置的优越性。通过这两个标准,我们可以得到一个排序列表,其中最高排名的配置具有最高的优先级。
  2. 圣遗物分配:接下来,算法会根据配置排名,将最好的圣遗物分配给排名最高的配置。同时,确保每个圣遗物都能尽可能地获得分配,以便整个圣遗物库的价值得到最大化。

在圣遗物分配过程中,算法还会额外关注那些评分为 3 或 4 的圣遗物,但并未被分配到你选择的配置中。这样做的目的是防止由于配置限制而错过高质量的圣遗物。这些未被分配的优质圣遗物将被显示出来,以确保你能够充分了解它们的价值并做出适当的决策。

使用说明

使用 ArtifactJunkFilter 非常简单。你只需要将自己的圣遗物库文件 mona.json 替换 artifacts/mona.json 文件,然后在 IDE 或命令行中运行 main.py 文件,按照屏幕上的提示来输入一些信息即可。

当你提供了所有必要的信息后,ArtifactJunkFilter 将开始运行,并在完成后将筛选结果将打印在屏幕上。

未来开发计划

为了让 ArtifactJunkFilter 更加强大和实用,我们计划在未来的版本中加入以下功能:

  1. 支持yas-lock:实现自动锁定功能
  2. 自定义筛选规则:让用户可以自定义微调规则
  3. 自定义评分权重:让用户可以自定义评分标准
  4. 图形用户界面:开发一个用户友好的图形界面,使用户更轻松地进行圣遗物管理。
  5. 与其他开发者合作:本人非科班,精力也有限,图形界面可能得很久,在此之前与其他开发者合作是更好的选择
  6. 数据可视化:实现圣遗物库的数据可视化,帮助用户更直观地了解圣遗物库的统计信息和分布情况。
  7. 全能型原神计算器:人物、武器、技能、套装效果相结合,计算出更合理的圣遗物搭配,进行更好的筛选与分配

注意事项

请注意,ArtifactJunkFilter 只是一个简单的筛选器,它并不能保证所有筛选结果都是准确的。此外,该程序还没有经过充分的测试,因此可能存在一些 bug 和限制。在使用程序时,请务必小心,并检查所有的筛选结果。