Skip to main content

weighted_random_bools

Function weighted_random_bools 

Source
pub fn weighted_random_bools(
    seed: Seed,
    p_numerator: u64,
    p_denominator: u64,
) -> WeightedRandomBools 
Expand description

Generates random bools, with a fixed probability of generating true.

Let $n_p$ be p_numerator, $d_p$ be p_denominator, and let $p=n_p/d_p$. Then

$P(\text{true}) = p$,

$P(\text{false}) = 1-p$.

The output length is infinite.

§Panics

Panics if p_denominator is 0 or p_numerator > p_denominator.

§Expected complexity per iteration

$T(n) = O(n)$

$M(n) = O(1)$

where $T$ is time, $M$ is additional memory, and $n$ is p_denominator.significant_bits().

§Examples

use malachite_base::bools::random::weighted_random_bools;
use malachite_base::iterators::prefix_to_string;
use malachite_base::random::EXAMPLE_SEED;

assert_eq!(
    prefix_to_string(weighted_random_bools(EXAMPLE_SEED, 3, 4), 10),
    "[true, true, false, true, false, false, true, false, true, true, ...]"
)