import numpy as np
class mingwen():
'''
铭文类
'''
def __init__(self, crit_rate, crit_effect):
'''
:param crit_rate: 暴击率
:param crit_effect: 暴击效果
'''
self.crit_rate = crit_rate
self.crit_effect = crit_effect
huoyuan = mingwen(0.016, 0) # 祸源铭文的暴击率和暴击效果
wushuang = mingwen(0.007, 0.036) # 无双铭文的暴击率和暴击效果
flag = False # 是否出无尽,手动修改为True或者False
data_all = []
data_all.append([0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0]) # 用来保存数据
for i in range(101):
'''
i/100代表除了无尽和铭文以外的其他装备的暴击率总和
'''
data_per = []
data_per.append(i) # 记录其他装备暴击率总和
for j in range(11):
'''
j代表无双铭文个数,从0-10开始遍历
'''
crit_rate = i / 100 # 初始化暴击率
crit_effect = 2 # 初始化暴击效果,如果是猴子和阿轲改成1.5和1.25
if flag:
'''
出了无尽的情况下暴击率和暴击效果的变化
'''
crit_rate += 0.2
crit_effect += 0.4
# 铭文加成
crit_rate += + j * wushuang.crit_rate + (10 - j) * huoyuan.crit_rate
crit_effect += j * wushuang.crit_effect + (10 - j) * huoyuan.crit_effect
if crit_rate >= 1:
'''
考虑暴击率超过1的情况
'''
crit_rate = 1
if crit_effect >= 2.5:
'''
考虑暴击效果超过2.5的情况
'''
crit_effect = 2.5
hurt = crit_rate * crit_effect + (1 - crit_rate) * 1 # 计算伤害
data_per.append(hurt) # 记录伤害
hurt_max = max(data_per[1:]) # 记录最大伤害
wushuang_number = data_per.index(hurt_max) - 1 # 记录最大伤害时无双的数目
data_per.append(wushuang_number) # 记录此数据
data_all.append(data_per) # 记录当前i的数据
data_all = np.array(data_all) # 格式转化
if flag:
'''
取的文件名字不同
'''
fname = "出无尽.csv"
head = "此表为出无尽的情况,A列为除了无尽和铭文以外的其他装备提供的暴击率,B到L列为不同数量的无双铭文的各种情况,L列为伤害最高的情况的无双铭文数量。"
else:
fname = "不出无尽.csv"
head = "此表为出不无尽的情况,A列为除了无尽和铭文以外的其他装备提供的暴击率,B到L列为不同数量的无双铭文的各种情况,L列为伤害最高的情况的无双铭文数量。"
np.savetxt(fname, data_all, delimiter=',', fmt='%f', header=head) # 写文件
得出结论:
不出无尽战刃时:
x∈0-9%时,携带0个无双最好。
x∈10-11%时,携带1个无双最好。
x∈12-13%时,携带2个。
x∈14-15%时,携带3个。
x∈16-17%时,携带4个。
x∈18%时,携带5个。
x∈19-20%时,携带6个。
x∈21-22%时,携带7个。
x∈23-24%时,携带8个。
x∈25-26%时,携带9个。
x∈27-100%时,携带10个。
当备选装备里面有无尽的时候:
x∈0-1%时,携带1个无双最优。
x∈2-14%时,携带2个无双最优。
x∈15-100%时,携带3个无双最优。