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, ...]"
)