document.addEventListener("DOMContentLoaded", function() { function validateInputPt(inputElement, min, max) { const value = parseFloat(inputElement.value); if (value < min || value > max) { alert(`The value must be a number between ${min} y ${max}.`); inputElement.value = ''; } } function calculateProbabilities() { const mPt = parseFloat(document.getElementById('mPt').value); const fPt = parseInt(document.getElementById('fPt').value); let pmPt = 0; for (let i = 0; i < fPt; i++) { pmPt += (Math.exp(-mPt) * Math.pow(mPt, i)) / factorial(i); } pmPt = 1 - pmPt; const plPt = 1 - pmPt; document.getElementById('pmPt').innerText = (pmPt * 100).toFixed(2); document.getElementById('plPt').innerText = (plPt * 100).toFixed(2); } function factorial(n) { if (n === 0 || n === 1) { return 1; } let result = 1; for (let i = 2; i <= n; i++) { result *= i; } return result; } document.getElementById('formWrapPt').addEventListener('input', calculateProbabilities); const mPt = document.getElementById('mPt'); const fPt = document.getElementById('fPt'); const safetyLevelMin = 0, safetyLevelMax = 115; const accidentFrequencyMin = 0, accidentFrequencyMax = 150; mPt.addEventListener('input', () => validateInputPt(mPt, safetyLevelMin, safetyLevelMax)); fPt.addEventListener('input', () => validateInputPt(fPt, accidentFrequencyMin, accidentFrequencyMax)); });