【シノアリス】前衛が期待値通りの人数を殴れる確率について考えてみた
はじめに
お互いメア無しの対面で格上タンク相手にシップに行きたいと思い、各バフやデバフに対するダメージ量を計算したことがありました。
その際、
・お互いにメア無し
・自陣前衛:攻ステ80万、バフ10、劣勢武器を振る
・敵陣前衛:防ステ80万、100%タンク、デバフ-5
※バデバは減衰に乗らないラインの中で最高値とする
とした場合、
・約100万ダメージが出る
・そのため、敵前衛が全員HP200万とした場合、
シップに行く前衛5人でトータル10体にダメージを出せば良い
ということがわかりました。
(サポートジョブや勇猛の本数で値は変わるので、あくまで概算です)
けど、例えば群雄率0.5、1~2体劣勢(殻/スコとか古いの)を5人で振ったとき、対象人数の期待値は10体ですが「期待値通りの人数に武器が飛ぶ確率ってどれくらい?」と思い調べてみようと思いました。
アプローチ
以下の記事で作ったシミュレータを改良します。
調べる内容を「1~2体飛びの魔書を5人が振ったときにトータル10体にデバフできる確率は?」と読み替えて以下のように変えました。
・・・略・・・
let totalTrialNum = 10000000;
let targetNumOfDebuff = 10;
let tousotsuFlag = true;
let gunyuRate = 0.50;
let own1 = new Sorcerer(1, 3, gunyuRate, tousotsuFlag, 1);
・・・略・・・
let resultMessage = ""
let debuffNum = 0
let totalUndebuffNum = 0;
let totalOverTargetDebuffNum = 0;
for(let j=0; j<totalTrialNum; j++){
own1.debuff(0);
・・・略・・・
let debuffEnemy = [0,0,0,0,0];
let nonDebuffEnemyNum = 0;
for(let i=0; i<5; i++){
debuffEnemy[i] = own1.debuffResult[i]
・・・略・・・
}
if(debuffEnemy[0] == 0 ) nonDebuffEnemyNum++;
if(debuffEnemy[1] == 0 ) nonDebuffEnemyNum++;
if(debuffEnemy[2] == 0 ) nonDebuffEnemyNum++;
if(debuffEnemy[3] == 0 ) nonDebuffEnemyNum++;
if(debuffEnemy[4] == 0 ) nonDebuffEnemyNum++;
//console.log(debuffEnemy);
//console.log(nonDebuffEnemyNum);
if(nonDebuffEnemyNum > 0)totalUndebuffNum++;
debuffNum = debuffEnemy[0]+debuffEnemy[1]+debuffEnemy[2]+debuffEnemy[3]+debuffEnemy[4];
if(debuffNum >= targetNumOfDebuff) totalOverTargetDebuffNum++;
}
resultMessage += "デバフ失敗率 :" + (totalUndebuffNum / totalTrialNum)*100 +"%<br>";
resultMessage += " 非デバフ回数 :" + totalUndebuffNum +"<br>";
resultMessage += " 試行回数 :" + totalTrialNum +"<br>";
resultMessage += "<br>";
resultMessage += "目標デバフ人数 :" + targetNumOfDebuff+"人以上<br>";
resultMessage += "デバフ目標達成率:" + (totalOverTargetDebuffNum / totalTrialNum)*100 +"%<br>";
document.getElementById("result").innerHTML = resultMessage;
結果
・統率なし
・群雄率は50%
・振る武器は1~2体
としてシミュレータを回したところ、
10体以上にダメが入る確率は
62.3%
であることがわかりました。(心もとない確率な気がしますね)
この記事が気に入ったらサポートをしてみませんか?