Pseudo random number generator with cellular automaton rule 30.
-
no_std
- Extend CA for better performance
use rule30::prelude::*;
fn main() {
let mut ca = ExtendedCA::seed_from_u64(42);
println!("{}", ca.next_u64());
}
To work with rand
crate:
use rule30::prelude::*;
use rand::Rng;
fn main() {
let mut ca = ExtendedCA::seed_from_u64(42);
println!("{}", ca.gen::<f64>());
}
For Python binding, check rule30py
- Wolfram Rule30
- Wolfram ExtendedCA