bernoulli_distribution.js

/**
 * [伯努利分布](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;