#numbers #rng #fixed #bits #set-bit #generator #ones

rand-bits

Random number generators with a fixed number of set bits (ones)

2 unstable releases

0.1.1 Dec 10, 2023
0.1.0 Dec 10, 2023
0.0.0 Dec 8, 2023

#1084 in Algorithms

MIT license

11KB
178 lines

rand-bits

GitHub docs.rs MSRV deps.rs unsafe forbidden LICENSE

Random number generators with a fixed number of set bits (ones).

Setup

To use this crate, add the following entry to your Cargo.toml file in the dependencies section:

[dependencies]
rand-bits = "0.1.1"

Alternatively, you can use the cargo add subcommand:

cargo add rand-bits

Usage

use rand::thread_rng;
use rand_bits::RngBits;

let mut rng = thread_rng();
let x: u8 = rng.gen_bits(4); // generates a u8 with 4 set bits
assert_eq!(x.count_ones(), 4);
let y: u16 = rng.gen_bits(15); // generates a u16 with 15 set bits
assert_eq!(y.count_ones(), 15);
let z: u64 = rng.gen_bits(1); // generates a u64 with 1 set bits
assert_eq!(z.count_ones(), 1);

For more usage examples, refer to the documentation available at docs.rs.

License

This crate is licensed under the MIT License.

Dependencies

~0.6–1.1MB
~25K SLoC