7个不稳定版本 (3个破坏性更新)
0.4.0 | 2019年9月15日 |
---|---|
0.3.2 | 2019年9月14日 |
0.2.1 | 2019年9月12日 |
0.1.0 | 2019年9月11日 |
#2150 in 算法
每月48次下载
37KB
1K SLoC
Srand
受golang标准库启发的随机数生成器和其他随机功能,使用简单API。
一个简单的RNG随机生成器
let mut r: Rand<_> = Rand::new(RngSource::new(1));
let mut get = vec![];
for _i in 0..50 {
get.push(r.int32n(100));
}
线程安全的随机生成器
let r: Rand<_> = Rand::new(LockedSource::new(1));
let mut handles = vec![];
for i in 0..4 {
let mut r = r.clone();
let h = std::thread::spawn(move || {
for j in 0..3 {
println!("thread: {}, index: {}, {}", i, j, r.i64());
}
});
handles.push(h);
}
for h in handles {
h.join().unwrap();
}
线程本地API
srand::ThreadLocal::seed(1234567);
srand::ThreadLocal::int32();
srand::ThreadLocal::uint32();
srand::ThreadLocal::int64();
srand::ThreadLocal::uint64();
随机数据
let mut buffer = Vec::with_capacity(16);
buffer.resize(16, 0u8);
srand::read(&mut buffer);
依赖项
~10KB