gpt4 book ai didi

c++ - 生成随机数的函数,不是那么随机

转载 作者:太空宇宙 更新时间:2023-11-04 15:40:23 25 4
gpt4 key购买 nike

我编写了一个生成随机数的函数,我每 10 毫秒调用一次该函数

我得到的结果令人惊讶,我生成的数字是 3 的序列(0,3,6,9,12,...)

这是我的功能:

int utilitaireUDP::genereNombreAleatoire(int a, int b){
int nombre_aleatoire = 0; //Sert a remplir la structure
srand(time(NULL)); // initialisation de rand
nombre_aleatoire = rand()%(b-a) +a;;
return nombre_aleatoire;
}

我是不是忘记了什么?问题是否与我的 CPU 有关(因为随机数是从我的内部时钟生成的)?

编辑:谢谢大家!

我用这篇文章来补充一些东西,我有这个功能:

bool utilitaireUDP::genererBooleen(){
if (genereNombreAleatoire(0,1) == 0){
return true;
}
else {
return false;
}
}

这只会生成 true,但我现在将 srand 放在我的 main 中......它非常适合 int ...

最佳答案

在程序运行期间多次调用 srand 很少有用;特别是,不要尝试在每次调用 rand 之前调用 srand,以试图获得“真正随机” 数字。

从您的函数中删除 srand(time(NULL)); 并将其放置在程序启动时,以便它只调用一次。

关于c++ - 生成随机数的函数,不是那么随机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24511838/

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