Function malachite_base::num::random::striped::striped_random_bool_vecs_from_length_iterator
source · [−]pub fn striped_random_bool_vecs_from_length_iterator<I: Iterator<Item = u64>>(
seed: Seed,
lengths_gen: &dyn Fn(Seed) -> I,
mean_stripe_numerator: u64,
mean_stripe_denominator: u64
) -> StripedRandomBoolVecs<I>ⓘNotable traits for StripedRandomBoolVecs<I>impl<I: Iterator<Item = u64>> Iterator for StripedRandomBoolVecs<I> type Item = Vec<bool>;
Expand description
Generates random striped Vec<bool>
s, with lengths from an iterator.
See here for more information.
The mean run length (before the bit sequences are truncated) is
$m$ = mean_stripe_numerator / mean_stripe_denominator
.
Panics
Panics if mean_stripe_denominator
is zero or if
mean_stripe_numerator <= mean_stripe_denominator
.
Examples
use malachite_base::iterators::prefix_to_string;
use malachite_base::num::random::striped::striped_random_bool_vecs_from_length_iterator;
use malachite_base::random::EXAMPLE_SEED;
use malachite_base::strings::ToBinaryString;
use malachite_base::vecs::random_values_from_vec;
assert_eq!(
prefix_to_string(
striped_random_bool_vecs_from_length_iterator(
EXAMPLE_SEED,
&|seed| random_values_from_vec(seed, vec![0, 2, 4]),
10,
1,
).map(|bs| bs.into_iter().map(|b| if b { '1' } else { '0' }).collect::<String>()),
20
),
"[00, 0000, 00, 0000, 0000, 11, , 00, , 1111, 0001, 11, 1100, 00, 0000, 0000, 1110, , \
0000, , ...]"
);