DPS予想6

これまでの与ダメ予想では、ずっとチェインはセイントスマッシュ(以下SS)のみという設定でやってきた。この場合、通常攻撃はずっと一定のリズムが刻まれるためダメの予想がが楽にできる。

今日はチェインにSSとデストロイアンデット(以下DU)をつけた場合の与ダメ予想シミュレータを作ってみる。こんな感じになった。

N = 100000  # 実験回数
SEC = 2*60  # 時間 (sec)

D1 = 113                      # 通常ダメ
D2 = 263                      # SSダメ(1回分)
D3 = 664                      # DUダメ
r2 = 0.15*1.3                 # SSの発動率
r3 = 0.1*1.3                  # DUの発動率
r3x= 0.55*1.3                 # DUの発動率(発動率上昇時)
T1=1.06                       # 通常攻撃時の時間間隔
T2=1.34                       # SS1回目でDUが発動した場合の時間
T3=1.69                       # SS2回目でDUが発動した場合の時間



$frand=Random.new()
def occ(q)
  $frand.rand(1.0) < q
end

def dmg(r2, r3, r3x)
  t=0
  dm=0
  while t < SEC do
    if occ(r3) then      # DU発動
      dm+=D3
      t+=T1
    elsif occ(r2) then   # SS発動
      if occ(r3x) then
        dm+=D2+D3        # SSの1回目でDU発動
        t+=T2
      elsif occ(r3) then # SSの2回目でDU発動
        dm+=2*D2+D3 
        t+=T3
      else               # SSのみ発動
        dm+=D2
        t+=T1
      end
    else                 # 通常攻撃
      dm+=D1
      t+=T1
    end
  end
  dm
end


result= N.times.map { dmg(r2, r3, r3x) }

result.each do |d|
  print "#{d}\n"
end

実際に計算させてみたのがこちら。

f:id:ochanikki:20190131235826p:plain