27 lines
575 B
Rust
27 lines
575 B
Rust
use rand::rngs::StdRng;
|
|
use rand::Rng;
|
|
use rand::SeedableRng;
|
|
use rug::Integer;
|
|
|
|
pub fn generate_random_odd_integer(num_bits: u32) -> Integer {
|
|
let mut rng = StdRng::from_os_rng();
|
|
let mut x = Integer::from(1);
|
|
for _ in 1..(num_bits-1) {
|
|
x <<= 1;
|
|
x += rng.random_range(0..=1);
|
|
}
|
|
x <<= 1;
|
|
x += 1;
|
|
x
|
|
}
|
|
|
|
pub fn generate_random_integer(num_bits: u32) -> Integer {
|
|
let mut rng = StdRng::from_os_rng();
|
|
let mut x = Integer::from(1);
|
|
for _ in 1..num_bits {
|
|
x <<= 1;
|
|
x += rng.random_range(0..=1);
|
|
}
|
|
x
|
|
}
|