pub struct Xorshift { /* private fields */ }Expand description
Xorshift による64 bit疑似乱数生成器です。
競技中のランダムテストやヒューリスティック用途を想定しています。暗号用途には適しません。
内部状態を更新する各生成操作は O(1) で、同じ seed からは同じ列を生成します。
§Examples
use atcoder::random::Xorshift;
let mut rng = Xorshift::new(7);
let value = rng.range_inclusive(1, 6);
assert!((1..=6).contains(&value));Implementations§
Source§impl Xorshift
impl Xorshift
Sourcepub const fn new(seed: u64) -> Self
pub const fn new(seed: u64) -> Self
seed を初期状態として生成器を作ります。
seed == 0 の場合は固定の非ゼロ値へ置き換えます。同じ seed から作った生成器は同じ値列を生成します。
Sourcepub fn range_inclusive(&mut self, min: usize, max: usize) -> usize
pub fn range_inclusive(&mut self, min: usize, max: usize) -> usize
閉区間 [min, max] から疑似乱数の usize を返します。
min > max の場合と、区間幅が usize で表せない場合は panic します。剰余による
ごく小さな偏りがあるため、厳密な一様分布が必要な用途には適しません。特に 0..=usize::MAX
は幅が usize に収まらないため panic します。
Sourcepub fn next_range(&mut self, min: usize, max: usize) -> usize
pub fn next_range(&mut self, min: usize, max: usize) -> usize
閉区間 [min, max] から疑似乱数の usize を返します。
range_inclusive と同じです。
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Xorshift
impl RefUnwindSafe for Xorshift
impl Send for Xorshift
impl Sync for Xorshift
impl Unpin for Xorshift
impl UnsafeUnpin for Xorshift
impl UnwindSafe for Xorshift
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more