用土法代码模拟了一下两个同威力不同关键技能数量的轴

时间:2022-05-29 18:11 作者:佚名 手机订阅 神评论

新闻导语

轴1是60个火4,20个悖论,10个绝望,剩下的威力除以剩下的技能数量 轴2是火4悖论绝望都少了3个,剩下的威力仍然除以剩下的技能数量

两个轴都是50000总威力,100个技能,其中

暴击率25%,暴击倍率1.6

轴1是60个火4,20个悖论,10个绝望,剩下的威力除以剩下的技能数量

轴2是火4悖论绝望都少了3个,剩下的威力仍然除以剩下的技能数量

模拟方法是每个轴跑100次取最高的天命局为一组,然后每个轴都跑一千组取得一千把天命局

交叉对比两种轴的各1000把天命局,跑了好几次都差不多是轴1有54%左右的概率胜过轴2

下面放其中一次的截图和代码,各个技能的数量和威力都可以自己改自己玩

另外诚招一个会写代码的大佬写个优化版,现在这版本跑一次千组对比要花十几秒

优化了一下代码现在快了十几倍了,放在下面了

import random

import numpy as np

#Create two rotations with same total potency (50000 for example)

RotationList1 = [558]*60 + [500]*20 + [612]*10 + [40]*10

RotationList2 = [558]*57 + [500]*17 + [612]*7 + [284.73]*19

CritRate = 0.25

CritDamage = 1.6

Trynumber = 100

def CritSim(runs, rotation):

# create rotation list

List = rotation

n = runs

# Generating results

Rand = np.ceil(CritRate - np.random.random_sample((n,Trynumber,len(List))))

Max = np.amax(np.dot(Rand,List),axis=1)

return Max

Bonus1 = CritSim(1000,RotationList1)

Bonus2 = CritSim(1000,RotationList2)

def Compare(data1, data2):

Result = data1[None, :] - data2[:, None]

#Put in comparison result, and mark 1 as data1 > data2, 0 as data1 < data2.

Marking = np.ceil(Result/10000)

Rate = np.sum(Marking)/np.size(Marking)

print(Rate)

Compare(Bonus1, Bonus2)


相关阅读:最终幻想14,交流,攻略

论坛大图推荐