线上运行,可以直接打开:硬币翻转概率计算器(在线计算器)
作为程序员,没有合适的工具,就得手搓一个,PC端,移动端均可适用。废话不多说,直接上代码。
HTML:
<div class="calculator"><input id="n" min="1" step="1" type="number" placeholder="请输入翻转次数 n"> <input id="k" min="0" step="1" type="number" placeholder="请输入期望正面次数 k"><button class="button" onclick="calculateCoinProbability()">计算概率</button><div id="result" class="result">结果:P(X = k) =</div></div>
JS:
javascript">// 计算组合数 C(n, k)function combination(n, k) {if (k > n) return 0;let result = 1;for (let i = 0; i < k; i++) {result *= (n - i) / (i + 1);}return result;}// 计算硬币翻转的概率function calculateCoinProbability() {const n = parseInt(document.getElementById('n').value);const k = parseInt(document.getElementById('k').value);const p = 0.5;// 检查输入有效性if (isNaN(n) || isNaN(k) || n < 1 || k < 0 || k > n) {document.getElementById('result').innerText = "请输入有效的 n 和 k 值,且 0 ≤ k ≤ n";return;}// 计算概率const probability = combination(n, k) * Math.pow(p, k) * Math.pow(1 - p, n - k);document.getElementById('result').innerText = `结果:P(X = ${k}) = ${probability.toFixed(4)}`;}
CSS:
.calculator {width: 100%;background-color: #333;color: white;padding: 20px;border-radius: 10px;box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
}label {display: block;margin-bottom: 10px;font-size: 16px;
}input, select {width: 100%!important;padding: 10px!important;margin-bottom: 20px;color: #000000; border-radius: 5px;border: 1px solid #555;font-size: 16px!important;background-color: #ffffff!important;
}button {width: 100%;padding: 10px;background-color: #007bff;color: white;border: none;border-radius: 5px;cursor: pointer;font-size: 16px;
}button:hover {background-color: orange;
}.result {font-size: 18px;margin-top: 20px;text-align: center;
}option {background-color: #ffffff;
}p {font-size: 18px;margin-top: 5px!important;
}