Zum Hauptinhalt springen
claw
am
tools
Werkzeuge
Dokumente
Daoark
EN
Startseite
Startseite
/
Calculadora
›
Startseite
manifest.json
= 1) throw new Error('p 必须在 0-1 之间(不含)'); var a = [-39.6968302866538, 220.946098424521, -275.928510446969, 138.357751867269, -30.6647980661472, 2.50662827745924]; var b = [-54.4760987982241, 161.585836858041, -155.698979859887, 66.8013118877197, -13.2806815528857]; var c = [-0.00778489400243029, -0.322396458041136, -2.40075827716184, -2.54973253934373, 4.37466414146497, 2.93816398269878]; var d = [0.00778469570904146, 0.32246712907004, 2.445134137143, 3.75440866190741]; var pLow = 0.02425, pHigh = 1 - pLow; var q, r; if (p < pLow) { q = Math.sqrt(-2 * Math.log(p)); return (((((c[0]*q + c[1])*q + c[2])*q + c[3])*q + c[4])*q + c[5]) / ((((d[0]*q + d[1])*q + d[2])*q + d[3])*q + 1); } else if (p <= pHigh) { q = p - 0.5; r = q * q; return (((((a[0]*r + a[1])*r + a[2])*r + a[3])*r + a[4])*r + a[5]) * q / (((((b[0]*r + b[1])*r + b[2])*r + b[3])*r + b[4])*r + 1); } else { q = Math.sqrt(-2 * Math.log(1 - p)); return -(((((c[0]*q + c[1])*q + c[2])*q + c[3])*q + c[4])*q + c[5]) / ((((d[0]*q + d[1])*q + d[2])*q + d[3])*q + 1); } } function stdNormPdf(z) { return Math.exp(-z * z / 2) / Math.sqrt(2 * Math.PI); } function doProcess() { try { var op = getVal('op'); var mu = parseFloat(getVal('mean')); var sigma = parseFloat(getVal('std')); if (!Number.isFinite(sigma) || sigma <= 0) { showError('标准差必须 > 0'); return; } var out = ''; if (op === 'pdf' || op === 'cdf' || op === 'zscore') { var x = parseFloat(getVal('x')); if (!Number.isFinite(x)) { showError('x 必须是数字'); return; } var z = (x - mu) / sigma; if (op === 'zscore') { out = 'z-score = (x - μ) / σ = (' + x + ' - ' + mu + ') / ' + sigma + ' = ' + z.toFixed(6); } else if (op === 'pdf') { var pdf = stdNormPdf(z) / sigma; out = 'PDF f(' + x + ') = ' + pdf.toFixed(6) + '\nz = ' + z.toFixed(4); } else { var cdf = stdNormCdf(z); out = 'CDF F(' + x + ') = P(X ≤ ' + x + ') = ' + cdf.toFixed(6) + '\nz = ' + z.toFixed(4) + '\nP(X > ' + x + ') = ' + (1 - cdf).toFixed(6); } } else if (op === 'quantile') { var p = parseFloat(getVal('p')); if (!Number.isFinite(p) || p <= 0 || p >= 1) { showError('p 必须在 0-1 之间'); return; } var zq = stdNormInv(p); var xq = mu + zq * sigma; out = 'P(X ≤ x) = ' + p + ' 时:\nz = ' + zq.toFixed(6) + '\nx = μ + z·σ = ' + xq.toFixed(6); } showResult(out, '操作: ' + op + ', μ=' + mu + ', σ=' + sigma); } catch (e) { showError('计算失败: ' + (e.message || e)); } } $('btn-main').addEventListener('click', function(e) { e.preventDefault(); doProcess(); }); $('btn-clear').addEventListener('click', function() { var inputs = document.querySelectorAll('input,textarea,select'); for (var i = 0; i < inputs.length; i++) { if (inputs[i].tagName === 'SELECT') inputs[i].selectedIndex = 0; else inputs[i].value = inputs[i].defaultValue; } var ra = $('result-area'); ra.hidden = true; ra.style.display = 'none'; var em = $('error-msg'); em.hidden = true; em.style.display = 'none'; }); })();