random - 如何获得一组随机数,其中单个数字仅出现一次?

标签 random rust

例如,在俄罗斯方 block 游戏中,游戏会将棋子随机化,就好像它们是从袋子里挑选出来的一样。

最佳答案

正如您所描述的,随机化是通过洗牌集合来完成的。

rand crate 实现了这种改组(并且有一个示例)。

这里以随机顺序打印从 1 到 10 的数字,不重复:

use rand::prelude::*;

fn main() {
    let mut rng = rand::thread_rng();
    let mut nums: Vec<i32> = (1..=10).collect();
    nums.shuffle(&mut rng);
    for num in nums {
        println!("{}", num);
    }
}

Playground

关于random - 如何获得一组随机数,其中单个数字仅出现一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67571063/

相关文章:

c++ - 有什么办法可以得到 0 - 10 亿之间的随机数吗?

rust - 如果通过原子操作进行门控,非原子写入是否可以安全读取?

generics - 可以在没有泛型的情况下编写此代码吗?

rust - 如何让 Rust 函数传播状态?

javascript - 一段代码看不懂

c - 蒙蒂霍尔实现

javascript - 如何随机翻转 Div 的后面然后再前面

ruby-on-rails - 如何清除缓存以便连续的随机查询返回不同的结果?

iterator - 返回 RefCell 中 Vec 的迭代器

rust - 当依赖项的创建成本很高时该怎么办?