1 2 3 4 5 6 7 8 9 10 11 12
pub struct MT19937LCG64(u64); impl MT19937LCG64 { pub fn new(seed: u64) -> Self { MT19937LCG64(seed) } pub fn next(&mut self) -> u32 { self.0 = self.0.wrapping_mul(6364136223846793005).wrapping_add(1); (self.0 >> 32) as u32 } }