#random #random-seed #rand #xoshiro256plusplus

bin+lib lazyrand

这是一个用于轻松生成随机数的简单库

13 个版本

0.1.13 2024年7月27日
0.1.12 2024年2月24日
0.1.9 2023年9月12日
0.1.5 2023年4月1日
0.1.4 2023年3月30日

468算法 中排名

Download history 18/week @ 2024-05-19 6/week @ 2024-06-02 6/week @ 2024-06-09 12/week @ 2024-06-16 5/week @ 2024-06-23 26/week @ 2024-06-30 119/week @ 2024-07-21 173/week @ 2024-07-28 1/week @ 2024-08-04

每月下载量:293

MIT 许可证

20KB
446

lazyrand for Rust

这是一个用于轻松生成随机数的库。随机种子会自动初始化。此包支持WASM。

可用于游戏和骰子等各种用途。但是,此库不是加密安全的。

它使用 xoshiro256++ 进行随机数生成。

安装

在您的终端中运行以下命令

cargo add lazyrand

示例

生成随机数

let num = lazyrand::randint(1, 6);
println!("random number = {}", num);

使用种子生成随机数。它可以用来生成相同的随机数序列。

lazyrand::set_seed(123456);
let n1 = lazyrand::rand() % 6 + 1;
let n2 = lazyrand::rand() % 6 + 1;
let n3 = lazyrand::rand() % 6 + 1;
println!("nums = [{}, {}, {}]", n1, n2, n3);

示例 - 切片

打乱切片

let mut a = vec![1, 2, 3, 4, 5];
lazyrand::shuffle(&mut a);
println!("shuffled = {:?}", a); // (ex) shuffled = [2, 4, 1, 5, 3]

从切片中选择一个数字

let a = vec![1, 2, 3];
let n = lazyrand::choice(&a);
println!("choice = {:?}", n); // (ex) choice = Some(5)

从切片中选择一个 &str

let mut a = vec!["apple", "banana", "orange"];
let s = lazyrand::choice(&a).unwrap();
println!("choice = {}", s); // (ex) choice = orange

使用 Random 结构的示例

使用 Random 结构生成随机数

use lazyrand::Random;
fn main() {
    // Create Random generator
    let mut random = Random::new();
    println!("random number = {}", random.randint(1, 6));

    let msg: &str = random.choice(&["hello", "hi", "bye"]).unwrap();
    println!("random message = {}", msg);
}

如何在 WASM 中使用 Lazyrand

请参阅 test_wasm

方法

  • set_seed(seed) / srand(seed) / generate_seed()
  • randint(min, max)
  • shuffle(&mut slice)
  • choice(&slice)
  • rand() / rand_bool() / rand_usize() / rand_isize() / rand_f64()

依赖关系

~25–260KB