从数组中采样 N 个元素的函数

win*_*win 3 random std rust

假设我们有一个数组:

let arr: [u8; 10] = [1,2,3,4,5,6,7,8,9,10];
Run Code Online (Sandbox Code Playgroud)

Rust 中是否有一个函数可以N从中选择随机元素而不重复?相当于python的random.sample功能。

Jmb*_*Jmb 7

您可以使用choose_multiple

use rand::prelude::*;

fn main() {
    let mut rng = rand::thread_rng();
    let arr: [u8; 10] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
    let sample: Vec<_> = arr.choose_multiple (&mut rng, 3).collect();
    println!("{:?}", sample);
}
Run Code Online (Sandbox Code Playgroud)

操场