Function malachite_base::sets::random::random_b_tree_sets_fixed_length
source · [−]pub fn random_b_tree_sets_fixed_length<I: Iterator>(
len: u64,
xs: I
) -> RandomBTreeSetsFixedLength<I>ⓘNotable traits for RandomBTreeSetsFixedLength<I>impl<I: Iterator> Iterator for RandomBTreeSetsFixedLength<I> where
I::Item: Ord, type Item = BTreeSet<I::Item>;
where
I::Item: Ord,
Expand description
Randomly generates BTreeSet
s of a given length.
The input iterator must generate at least len
distinct elements; otherwise, this iterator
will hang.
$$ P((x_i)_{i=0}^{n-1}) = n!\prod_{i=0}^{n-1}P(x_i). $$
If len
is 0, the output consists of the empty set, repeated.
xs
must be infinite.
Examples
extern crate itertools;
#[macro_use]
extern crate maplit;
use itertools::Itertools;
use malachite_base::num::random::random_unsigned_inclusive_range;
use malachite_base::random::EXAMPLE_SEED;
use malachite_base::sets::random::random_b_tree_sets_fixed_length;
fn main() {
let xss = random_b_tree_sets_fixed_length(
2,
random_unsigned_inclusive_range::<u32>(EXAMPLE_SEED, 1, 100),
)
.take(10)
.collect_vec();
assert_eq!(
xss,
&[
btreeset!{24, 95},
btreeset!{71, 99},
btreeset!{53, 93},
btreeset!{34, 85},
btreeset!{2, 48},
btreeset!{11, 55},
btreeset!{18, 48},
btreeset!{90, 93},
btreeset!{67, 93},
btreeset!{93, 95}
]
);
}