/**
* [伯努利分布](http://en.wikipedia.org/wiki/Bernoulli_distribution)
* 是一个离散概率分布,描述了一个随机变量以成功概率 `p` 取值为 1,
* 以失败概率 `q` = 1 - `p` 取值为 0 的情况。
* 它可以用于表示抛硬币实验,其中 "1" 表示 "正面","0" 表示 "反面"(或反之亦然)。
* 它是二项分布的一个特例,其中试验次数 `n` = 1。
*
* @param {number} p 输入值,范围在 0 到 1 之间(包含 0 和 1)
* @returns {number[]} 在该点的伯努利分布值
* @throws {Error} 如果 `p` 不在 0 到 1 之间
* @example
* bernoulliDistribution(0.3); // => [0.7, 0.3]
*/
function bernoulliDistribution(p) /*: number[] */ {
// 检查 `p` 是否为有效概率(0 ≤ p ≤ 1)
if (p < 0 || p > 1) {
throw new Error(
"bernoulliDistribution 要求概率值必须在 0 和 1 之间(包含 0 和 1)"
);
}
return [1 - p, p];
}
export default bernoulliDistribution;