【问题标题】:How to choose several random numbers from an interval?如何从一个区间中选择几个随机数?
【发布时间】:2021-12-05 02:33:03
【问题描述】:

我在 Rust 中有一个区间 0..N,需要选择 3 个不同的随机整数(区间中的每个整数都有相同的被选择概率)。

我希望它查询随机服务器以交叉验证数据。

如何在 Rust 中做到这一点?

【问题讨论】:

标签: random rust integer numbers


【解决方案1】:

您可以使用 rand 板条箱,改编 uniform distribution 示例

fn main() {
    use rand::distributions::Uniform;
    use rand::{thread_rng, Rng};

    let mut rng = thread_rng();
    let side = Uniform::new(-10, 10);

    for _ in 0..3 {
        println!("Point: {}", rng.sample(side));
    }
}

Playground

对于范围内的不同数字,请使用index::sample

fn main() {
    use rand::{thread_rng};

    let mut rng = thread_rng();
    let results = rand::seq::index::sample(&mut rng, 10, 3).into_vec();
    println!("{:?}", results);
}

Playground

【讨论】:

  • 你看错了。我想要 3 个 不同的 数字。您的代码有时会输出相同的数字。
  • @porton 我认为你应该使用docs.rs/rand/0.8.4/rand/seq/index/fn.sample.html。对不起,如果我看错了。 (如果这是您要查找的内容,请更新答案)
  • 是的,我需要的是 docs.rs/rand/0.8.4/rand/seq/index/fn.sample.html。
猜你喜欢
  • 2021-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-04
  • 2019-08-08
  • 1970-01-01
  • 2019-12-03
相关资源
最近更新 更多