草庐IT

伪随机码

全部标签

c++ - C++程序中随机调用函数

我有一个这样的C++程序#includestringA();stringB();stringC();intmain(){return0;}我想通过使用三个函数A()、B()和C()来测试应用程序,我从main()中随机调用它们,并以这种方式测试应用程序。我不知道是否有任何规定或调整允许我以任何顺序随机调用函数。在C++中是否可以随机调用函数,如果可以,那么最好的方法是什么? 最佳答案 for循环如何选择一个随机数来控制调用哪个测试。for(size_ti=0;i像这样的switch语句将允许不同的函数签名。

c++ - 无偏随机数发生器

我使用以下代码在域中生成随机数。当我绘制它们时,它们看起来在右侧分组。我可以给你看我的情节,但我不知道如何上传。基本上我将一些数据值关联到相应的点。你能告诉我如何更正吗?我的完整代码是#include#include#include#include#include#include#include#includeusingnamespacestd;stringint2string1(intl);stringint2string2(intm);intmain(){ofstreamoutFile;ofstreammyimp;stringfilename;srand((unsigned)tim

c++ - C++中的统一随机数生成器

我正在尝试使用C++TR1在C++中生成真随机数。然而,当再次运行我的程序时,它会产生相同的随机数。代码如下。每次运行我都需要尽可能随机的真随机数。std::tr1::mt19937eng;std::tr1::uniform_realunif(0,1);unif(eng); 最佳答案 您必须使用种子初始化引擎,否则将使用默认种子:eng.seed(static_cast(time(NULL)));但是,真正的随机性是您无法在没有额外输入的情况下在确定性机器上实现的。每个伪随机数生成器在某种程度上都是周期性的,这是您不会期望从非确定性

C++ 随机数生成

例如,下面的表达式:r=(rand()%10)+1;从1-10中生成一个随机数。我们如何让它生成0-10的随机数?谢谢。 最佳答案 你快到了!rand()函数返回一个相当大范围内的随机值(0到RAND_MAX)。使用模数运算符将其封装到一个较小的范围内(从0到9,因为您要按10进行修改),然后+1将其从1移动到10。要获得0到10之间的值,您可以采用rand并将其值修改为11:r=rand()%11;更一般地,要获得范围[0,n]内的随机值,您可以这样写r=rand()%(n+1);最后,要获取[k,n+k]范围内的值,您可以这样写

c++ - 为什么我会随机出现段错误?

这对我来说很奇怪,但是当我启动我的程序时遇到了意外的随机段错误。有时它可以工作,有时它会崩溃。Dev-C++的调试器将我指向文件的一行:STL_construct.h/***@ifmaint*Constructsanobjectinexistingmemorybyinvokinganallocated*object'sconstructorwithaninitializer.*@endif*/templateinlinevoid_Construct(_T1*__p,const_T2&__value){//_GLIBCXX_RESOLVE_LIB_DEFECTS//402.wrongne

c++ - C++中从-10到10的随机数

如何在C++中产生介于-10到10之间的随机数?srand(int(time(0)));//seedfor(inti=0;i 最佳答案 要获得均匀分布,您必须首先除以RAND_MAXstatic_cast(21*static_cast(rand())/(RAND_MAX+1))-10使用rand()%21-10;速度更快,经常在应用程序中使用,但结果分布不均匀。函数rand()生成从0到RAND_MAX的数字。如果RAND_MAX%21!=0生成的数字越小,概率就越高。您也可以考虑使用取模方法,但会丢弃一些随机数:intrandMa

c++ - 在一个范围内生成不同的随机数

这个问题在这里已经有了答案:Algorithmtoselectasingle,randomcombinationofvalues?(7个答案)Unique(non-repeating)randomnumbersinO(1)?(22个答案)关闭9年前。我想生成n个介于1和N之间的不同数字(当然n问题来了。如果我们不知道n有多大,我们该怎么办?我希望该算法只使用O(n)内存并在O(n)时间后停止。这可能吗?

c++ - 如何有效地使用 C++11 随机生成器?

我正在执行计算实验,这需要可重现。因此每个实验都使用自己的随机数生成器并记住其种子:classExperiment{public:voidoperator()();private:unsignedseed_;std::mt19937engine_;};问题是引擎需要传递给最基本的功能。假设在调用堆栈下方10层的某处有一个简单的函数,它需要一个引擎来生成一个介于0和1之间的随机数。然后该引擎需要传递给这10个调用中的每一个,使代码成为乱七八糟。我考虑并拒绝了这两种方法:1.globalengine:我会有一个全局引擎,所有基本函数都会调用这个引擎。但是,如果我想在不同的线程中运行多个实验

c++ - 配对从可变参数模板中随机获得的兼容类型

ABow只能发射Missile类型Arrow,Bolt,或Dart(但不是Stone),并且只能与MissileContainer一起使用类型Quiver或Case.Quiver只能装箭或bolt,而Case只能装bolt、飞镖或石头。我已经声明了这一点:structBow:MissileFireWeapon,MissileTypes,MissileContainerTypes{/*...*/};structQuiver:MissileContainer,MissileTypes{};structCase:MissileContainer,MissileTypes{};在哪里templ

C++11 交叉编译器/标准库随机分布再现性

虽然随机引擎需要在每个编译器上给出相同的数字序列。至少有一些随机分布不是,只要求它们满足统计和概率阈值。例如:#include#includeintmain(){std::mt19937foo;std::uniform_int_distributionbar(0,1000);for(inti=0;i针对(我的版本)libstdc++编译时将打印808,针对libc++编译时将打印89。无论给定什么样的合规环境,哪个标准提供的分布函数(如果有的话)都能保证产生一致的结果? 最佳答案 不幸的是,从N3936(C++14最终草案)开始,没