fix some rng bugs

This commit is contained in:
Alula 2021-01-16 14:51:12 +01:00
parent 9f70bf6fd0
commit 2563c09b69
No known key found for this signature in database
GPG Key ID: 3E00485503A1D8BA
1 changed files with 2 additions and 2 deletions

View File

@ -5,7 +5,7 @@ pub trait RNG {
fn next(&self) -> i32;
fn range(&self, range: Range<i32>) -> i32 {
range.start.saturating_add((self.next() >> 2) % range.len() as i32)
range.start + ((self.next() & 0x7fffffff) % (range.len() as i32))
}
}
@ -100,6 +100,6 @@ impl Xoroshiro32PlusPlus {
impl RNG for Xoroshiro32PlusPlus {
fn next(&self) -> i32 {
(((self.next_u16() as u32) << 16 | self.next_u16() as u32) >> 2) as i32
((self.next_u16() as u32) << 16 | self.next_u16() as u32) as i32
}
}