当前位置: 首页 > 知识库问答 >
问题:

在失去随机性之前,std::uniform_real_distribution可以产生多少随机数?

唐海阳
2023-03-14
// uniform_real_distribution
#include <iostream>
#include <random>

std::default_random_engine generator;
std::uniform_real_distribution<double> distribution(0.0,1.0);

int main()
{  
    double number = distribution(generator); //rnd number uniformly distributed between [0,1)
    return 0;
}

有可能吗?如果在调用发行版之前使用distribution.reset()重置该发行版,该怎么办?那能解决我的问题吗?

谢谢你的任何建议。

共有1个答案

汤博
2023-03-14

STL使用的随机生成器算法在标准中没有规定,所以在不知道使用了什么随机数生成算法的情况下,你无法确切地知道随机序列有多长。

它可能是已知的一小部分良好和快速的发电机之一,如梅森龙卷风或CMWC。

随机数生成器有很多种评级方法,但在你的问题中,我想你想知道周期-多长时间直到数字重复。期间也将取决于初始条件。

 类似资料:
  • 随机数有着广泛的用途。比如测试、游戏、仿真以及安全等领域都需要用到随机数。标准库所提供的多种可供选择的随机数产生器也恰恰反应了随机数应用范 围的多样性。随机数产生器由引擎(engine)和分布(distribution)两部分组成。其中,engine用于产生一个随机数序列或者伪随机数 序列;distribution则将这些数值映射到位于固定范围的某一数学分布中。关于分布的例子有:unifrom_i

  • 本文向大家介绍C#产生随机双,包括了C#产生随机双的使用技巧和注意事项,需要的朋友参考一下 示例 生成介于0和1.0之间的随机数。(不包括1.0)            

  • 下面要介绍一个在模拟事件和游戏的程序中常用的组件。本节和下节开发一个结构良好、包括多个函数的游戏程序。程序中要使用前面介绍的大多数控制结构。 在赌场上,人人都关心的一个问题就是机会元素(element of chance),也就是赢钱的运气。这个机会元素可以用标准库中的rand函数引入计算机应用程序中。 考虑下列语句: i=rand(); rand 函数产生O到RAND_MAX之间的整数(这是<s

  • 问题内容: 我正在寻找一个随机数,并将其发布到特定user_id的数据库表中。问题是,相同的数字不能使用两次。有上百万种方法可以做到这一点,但是我希望对算法非常热衷的人能够以一种优雅的解决方案巧妙地解决问题,因为它满足以下条件: 1)最少查询数据库。2)通过内存中的数据结构进行的爬网次数最少。 本质上,这个想法是要执行以下操作 1)创建一个从0到9999999的随机数 2)检查数据库以查看该数字是

  • $RANDOM是Bash的一个返回伪随机 [1]整数(范围为0 - 32767)的内部函数(而不是一个常量或变量),它不应该用于产生加密的密钥. 例子 9-24. 产生随机整数 1 #!/bin/bash 2 3 # 每次调用$RANDOM都会返回不同的随机整数. 4 # 范围为: 0 - 32767 (带符号的16位整数). 5 6 MAXCOUNT=10

  • 我想看看哪个随机数生成器包在我的神经网络中更快。 我目前正在更改github的一个代码,其中两个都是numpy。随机和随机包用于生成随机整数、随机选择、随机样本等。 我之所以更改此代码,是因为出于研究目的,我希望设置一个全局种子,以便能够比较超参数不同设置的精度性能。问题是,现在我必须为随机包和numpy包设置两个全局种子。理想情况下,我只想设置一个种子,因为来自两个随机数生成器序列的图形可能会更