rust随机整数、浮点数生成

use rand::Rng;
let mut random = rand::thread_rng();
// 生成[0, 1)范围内的浮点数
println!("[0,1)  f32={}", random.gen::<f32>());
// 生成[0,10)内随机整数
println!("[0,10) i32={}", random.gen_range(0,10));

Rust中生成随机数用得比较多的是rand库,目前最新版本是0.8.5
文档直达:rand-0.8.5

0.7.3版本也是用得比较多的。

添加依赖

在Cargo.toml文件中加入依赖:

[dependencies]
rand = "0.7.3"

gen()和gen_range()

#[test]
fn test_random() {
    use rand::Rng;
    use rand::prelude::ThreadRng;
    let mut random: ThreadRng = rand::thread_rng();

    // 生成随机i32值
    println!("i32={}", random.gen::<i32>());
    // 生成随机u8值
    let y: u8 = random.gen();
    // 生成指定类型的元组
    let point: (f32, f32) = random.gen();
    // 生成一个随机数组
    let arr: [u8; 5] = random.gen();
    // 生成[0,1)范围内随机f32值
    println!("[0,1) f32={}", random.gen::<f32>());
    // 生成[0,1)范围内随机f64值
    println!("[0,1) f64={}", random.gen::<f64>());
    // 指定范围[low, high),生成随机数
    let x:u8 = random.gen_range(1u8, 100u8);
    let y:f64 = random.gen_range(-20f64, 20f64);
}

测试代码2

use rand::Rng;
use rand::prelude::ThreadRng;
use rand::prelude::SliceRandom;

#[test]
fn test_random() {
    let mut random: ThreadRng = rand::thread_rng();
    
    // 0.7.x的版本,根据参数low和high生成区间[low,high)内的数
    let x0_10: i32 = random.gen_range(0,11);
    println!("{x0_10}");

    // 0.8.5版本支持,传入一个Range
    // println!("{}", random.gen_range(0..=10) as usize);

    let x: i32 = random.gen();
    println!("{x}");
    let y = random.gen::<u8>();
    println!("{y}");

    // 生成1个1-10的数组
    let mut nums: Vec<i32> = (1..=10).collect();
    
    // 传入随机变量,对数组元素顺序打乱重排(洗牌算法)
    nums.shuffle(&mut random);
    println!("{:?}", nums);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值