提问:
有没有小伙伴遇到这么一种情况,使用rand()和qrand()函数生成的随机数好像不是那么随机,每次都一样。那这种就叫做“伪随机”,因为没有种随机数种子,所以系统默认随机数种子是固定值。
在Qt项目中呢,生成随机数有两个步骤:
1.使用qsrand()种随机数种子
2.调用qrand()生成随机数
注意:
1.实践证明、如果是要在某一循环中产生随机数,随机数种子一定要写在循环外面,循环的时候用qrand()函数获取随机数。
2.千万、千万、千万不能在循环内部设置时间种子,因为CPU处理循环一次时间太短,会产生大量重复的值,这样获取的随机数是没有意义的。
3.切记!计算机产生的随机数都是伪随机数,不是真正意义的随机数,不能用它来进行某些统计计算等。
实现:
方法一:文章来源:https://www.toymoban.com/news/detail-681390.html
#include <QTime>
#include <QtGlobal>
QTime time;
time= QTime::currentTime();
qsrand(time.msec()+time.second()*1000);
或者
qsrand(QTime(0, 0, 0).msecsTo(QTime::currentTime()));
int n = qrand() % 10; //产生10以内的随机数
方法二:文章来源地址https://www.toymoban.com/news/detail-681390.html
#include <QTime>
#include <QtGlobal>
qsrand(0);
int n = qrand() % 10; //产生10以内的随机数
到了这里,关于Qt产生随机数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!