C++ C++;正态分布函数的仿真应用

C++ C++;正态分布函数的仿真应用,c++,simulation,C++,Simulation,我想知道正态分布函数使用什么样的随机数发生器 它是否适合科学模拟应用 关于标准库的全部要点是将分布与随机数生成器分离。您提供了一个生成统一整数的随机数生成器,分布负责将该随机统一整数序列转换为所需分布的样本 幸运的是,库还包含一组随机数生成器。尤其是Mersenne捻线机(std::mt19937)是一种相对较好的捻线机(即快速且统计质量较高) (您还需要为生成器提供种子。)标准库的整个要点是将分发版与随机数生成器分开。您提供了一个生成统一整数的随机数生成器,分布负责将该随机统一整数序列转换为所

我想知道正态分布函数使用什么样的随机数发生器

它是否适合科学模拟应用


关于标准库的全部要点是将分布与随机数生成器分离。您提供了一个生成统一整数的随机数生成器,分布负责将该随机统一整数序列转换为所需分布的样本

幸运的是,
库还包含一组随机数生成器。尤其是Mersenne捻线机(
std::mt19937
)是一种相对较好的捻线机(即快速且统计质量较高)


(您还需要为生成器提供种子。)

标准库的整个要点是将分发版与随机数生成器分开。您提供了一个生成统一整数的随机数生成器,分布负责将该随机统一整数序列转换为所需分布的样本

幸运的是,
库还包含一组随机数生成器。尤其是Mersenne捻线机(
std::mt19937
)是一种相对较好的捻线机(即快速且统计质量较高)


(您还需要为生成器提供种子。)

std::normal_distribution
不生成任何随机数。这是一个随机数分布。随机数分布仅将随机数引擎返回的值映射到某种分布。他们自己不做任何一代人。所以你关心的是随机数引擎

标准提供的随机数引擎之一,
std::mersenne_twister_引擎
是一个非常高质量的随机数引擎。您可以使用它生成正态分布的随机数,如下所示:

std::random_device rd;
std::mt19937 gen(rd()); // Create and seed the generator
std::normal_distribution<> d(mean, deviation); // Create distribution
std::cout << d(gen) << std::endl; // Generate random numbers according to distribution
std::随机设备rd;
std::mt19937 gen(rd());//创建并为生成器设定种子
标准:正态分布d(平均值、偏差);//创建分发

std::cout
std::正态分布不生成任何随机数。这是一个随机数分布。随机数分布仅将随机数引擎返回的值映射到某种分布。他们自己不做任何一代人。所以你关心的是随机数引擎

标准提供的随机数引擎之一,
std::mersenne_twister_引擎
是一个非常高质量的随机数引擎。您可以使用它生成正态分布的随机数,如下所示:

std::random_device rd;
std::mt19937 gen(rd()); // Create and seed the generator
std::normal_distribution<> d(mean, deviation); // Create distribution
std::cout << d(gen) << std::endl; // Generate random numbers according to distribution
std::随机设备rd;
std::mt19937 gen(rd());//创建并为生成器设定种子
标准:正态分布d(平均值、偏差);//创建分发

我知道这个帖子很老了,但是我希望我的回答是有益的。我使用
正态分布
为传感器生成高斯噪声。这有利于模拟传感器。例如,假设您有一个传感器,可以在2D中显示机器人的位置。每次你移动机器人时,传感器都会给你一些机器人位置的读数。在OpenGL中,可以模拟此示例。例如,您可以跟踪鼠标的位置,并向鼠标的实际位置添加一些高斯噪声。在这种情况下,您有一个跟踪鼠标位置的传感器,但是由于噪声,它具有不确定性

我知道这个帖子很老了,但是我希望我的回答是有益的。我使用
正态分布
为传感器生成高斯噪声。这有利于模拟传感器。例如,假设您有一个传感器,可以在2D中显示机器人的位置。每次你移动机器人时,传感器都会给你一些机器人位置的读数。在OpenGL中,可以模拟此示例。例如,您可以跟踪鼠标的位置,并向鼠标的实际位置添加一些高斯噪声。在这种情况下,您有一个跟踪鼠标位置的传感器,但是由于噪声,它具有不确定性

这完全取决于您的用例?用于模拟应用程序。如果你告诉我使用Mersenne捻线机发电机,那就好了!请参阅此处的示例,了解如何使用正态分布的Mersenne捻线器:这完全取决于您的用例?用于模拟应用程序。如果你告诉我使用Mersenne捻线机发电机,那就好了!请参见此处的示例,了解如何使用正态分布的Mersenne捻线器:
std::mt19937
是用于
std::Mersenne_捻线器
模板特定实例化的typedef<代码>std::mt19937
是一种经过验证的伪随机数生成器。该模板可以使用产生不太好的引擎的值进行实例化,因此大多数人应该坚持使用
std::mt19937
std::mt19937
std::mersenne_twister
模板的特定实例化的类型定义<代码>std::mt19937
是一种经过验证的伪随机数生成器。该模板可以用产生不太好的引擎的值进行实例化,因此大多数人应该坚持使用
std::mt19937