gpt4 book ai didi

rust - SeedableRng 种子的可能类型/值是什么?

转载 作者:行者123 更新时间:2023-11-29 07:54:20 27 4
gpt4 key购买 nike

SeedableRngan example ,但没有解释种子是什么。 Searching for the Seed type不提供细节。在 GitHub 源目录中搜索也没有为我解决这个问题。

let seed: &[_] = &[1, 2, 3, 4];
let mut rng: StdRng = SeedableRng::from_seed(seed);

seed 必须是四元素整数数组吗?为什么?可以是别的吗?

最佳答案

Seed 可以是 trait 的实现者决定的任何类型,它是定义为 trait 本身的一部分的通用类型:

pub trait SeedableRng<Seed>: Rng {
// ^^^^
fn reseed(&mut self, _: Seed);
fn from_seed(seed: Seed) -> Self;
}

Isaac64Rng使用一片 u64:

impl<'a> SeedableRng<&'a [u64]> for Isaac64Rng
// ^^^^^^^^^

XorShiftRng恰好使用 4 个 u32:

impl SeedableRng<[u32; 4]> for XorShiftRng
// ^^^^^^^^

可以看到all the implementers of SeedableRng from inside the rand crate in its documentation :

impl<S, R: SeedableRng<S>, Rsdr: Reseeder<R> + Default> SeedableRng<(Rsdr, S)> for ReseedingRng<R, Rsdr>
impl<'a> SeedableRng<&'a [u32]> for ChaChaRng
impl<'a> SeedableRng<&'a [u32]> for IsaacRng
impl<'a> SeedableRng<&'a [u64]> for Isaac64Rng
impl SeedableRng<[u32; 4]> for XorShiftRng
impl<'a> SeedableRng<&'a [usize]> for StdRng

其他 crate 也可以定义具有不同种子类型的随机数生成器。

关于rust - SeedableRng 种子的可能类型/值是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49342806/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com