function calc(){ let abeshi = Number(document.getElementById("abeshi").value); let lamp = document.getElementById("lamp").value; let rate = Number(document.getElementById("rate").value); // ---- 投資・時間換算(てんぱ加味) const yenPerAbeshi = 19.5; const abeshiPerMin = 26; let remain = Math.max(0,1536-abeshi); let invest = remain * yenPerAbeshi; let time = remain / abeshiPerMin; // ---- モード初期分布 let mode = {A:0.50, B:0.27, C:0.17, T:0.06}; // ---- 示唆補正 if(lamp=="yellow") mode={A:0.05,B:0.55,C:0.30,T:0.10}; if(lamp=="yellow_blink") mode={A:0.01,B:0.20,C:0.60,T:0.19}; if(lamp=="gold") mode={A:0.01,B:0.60,C:0.30,T:0.09}; if(lamp=="gold_blink") mode={A:0.00,B:0.15,C:0.65,T:0.20}; if(lamp=="purple") mode={A:0.00,B:0.55,C:0.35,T:0.10}; // ---- 天国否定 if(abeshi > 128) mode.T = 0; // ---- 深さ補正 if(abeshi>=350) mode.A*=0.75; if(abeshi>=550) mode.A*=0.55; if(abeshi>=750) mode.A*=0.40; if(abeshi>=900) mode.A*=0.25; // ---- 正規化 let total = mode.A+mode.B+mode.C+mode.T; for(let k in mode){ mode[k]/=total; } // ---- ゾーン別当選率 const zoneRate = { T: {128:0.70}, C: {256:0.32, 448:0.18, 576:0.45}, B: {256:0.18, 448:0.14, 896:0.52}, A: {256:0.12, 448:0.08, 576:0.08, 896:0.06, 1152:0.06, 1536:0.60} }; // ---- 平均獲得 const pay = {A:520, B:610, C:720, T:850, TEN:650}; function zoneEV(m, zone, rate, p){ if(abeshi >= zone) return 0; return m * rate * p; } let ev = zoneEV(mode.T,128,0.70,pay.T) + zoneEV(mode.C,256,0.32,pay.C) + zoneEV(mode.C,448,0.18,pay.C) + zoneEV(mode.C,576,0.45,pay.C) + zoneEV(mode.B,256,0.18,pay.B) + zoneEV(mode.B,448,0.14,pay.B) + zoneEV(mode.B,896,0.52,pay.B) + zoneEV(mode.A,256,0.12,pay.A) + zoneEV(mode.A,448,0.08,pay.A) + zoneEV(mode.A,576,0.08,pay.A) + zoneEV(mode.A,896,0.06,pay.A) + zoneEV(mode.A,1152,0.06,pay.A) + zoneEV(mode.A,1536,0.60,pay.TEN); let evYen = ev*(50/rate) - invest; let hourly = evYen/(time/60); document.getElementById("result").innerHTML=` 【モード期待度】
A:${(mode.A*100).toFixed(1)}% / B:${(mode.B*100).toFixed(1)}% / C:${(mode.C*100).toFixed(1)}% / 天国:${(mode.T*100).toFixed(1)}%

天井まで:${remain}あべし(約${Math.round(time)}分)
平均投資:約${Math.round(invest)}円
期待値:${Math.round(evYen)}円
時給:${Math.round(hourly)}円/h `; }