在Rust中编写一个函数,该函数返回具有指定平均值和标准差的随机正态偏差

n53p2ov0  于 2022-11-24  发布在  其他
关注(0)|答案(1)|浏览(116)

我正在用Rust做实验,我想知道如何写一个简单的函数来返回一个正态随机偏差。我知道如何做,所以我的问题更多的是关于全局状态和rand_distr crate的工作方式。我希望能够写这样的东西:

fn main() {
 let x: f64 = rnorm(-2.0, 3.0); // returns a normal deviate with the given mean and standard deviation
 println!("{}", x);
}

这种类型的函数是仿真建模中非常常见的模式,因为通常情况下需要生成许多偏差,每个偏差都有不同的参数。RustMaven可以在这里填写rnorm的定义吗?

kxeu7u2r

kxeu7u2r1#

这看起来可行,但也提出了一些其他问题。

use rand::*;          // hard to figure out what is best here
use rand_distr::*;

fn rnorm(mu: f64, sigma: f64) -> f64 {
    let dst = Normal::new(mu, sigma).unwrap();
    return dst.sample(&mut thread_rng());
}

fn main() {
    let x: f64 = rnorm(-2.0, 3.0);
    println!("{}", x);
}

那么,这会在每次调用时构建和拆卸正常的结构体吗?

相关问题