gpt4 book ai didi

random - 如何在结构中存储随机数生成器?

转载 作者:行者123 更新时间:2023-11-29 08:28:22 24 4
gpt4 key购买 nike

我正在尝试将随机数生成器存储在结构中。我似乎无法获得任何要识别的 Rng 结构的结构定义,例如 ThreadRng。这有效:

use rand::{
self,
distributions::{Distribution, Uniform},
}; // 0.6.4

fn main() {
let mut rng = rand::thread_rng();
let die_range = Uniform::new_inclusive(1, 6);
let die = die_range.sample(&mut rng);
println!("{}", die);
}

但是,如果我尝试定义一个具有 Rng 实际类型的变量,则会出现错误:

use rand::{
self,
ThreadRng,
distributions::{Distribution, Uniform},
}; // 0.6.4

fn main() {
let mut rng :ThreadRng = rand::thread_rng();
let die_range = Uniform::new_inclusive(1, 6);
let die = die_range.sample(&mut rng);
println!("{}", die);
}

错误是:

error[E0432]: unresolved import `rand::ThreadRng`
--> src/main.rs:3:5
|
3 | ThreadRng,
| ^^^^^^^^^
| |
| no `ThreadRng` in the root
| help: a similar name exists in the module: `thread_rng`

我想将 Rng 存储在一个结构中,我不想要一个特征对象。如何导入 ThreadRng 的定义?或者 XorShiftRng(这可能更快——我不需要加密强度)?是我不知道的某些子模块中的类型吗?我在网上阅读的所有示例都调用了一个方法来获取 Rng 并在本地使用它;他们从不将它存储在结构中,也从不定义任何使用结构名称的变量。

最佳答案

如果您查看文档 rand::thread_rng ,你可以点击它的返回类型来查看它的完全限定名实际上是rand::rngs::ThreadRng .

关于random - 如何在结构中存储随机数生成器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58043766/

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