当前位置:   article > 正文

C++ 非常好用的生成随机数方法(全新方法!)_c++中随机数怎么生成

c++中随机数怎么生成

前情提醒:初一生屑作,有错可在评论中指出XD

我们都知道,在c++中生成随机数需要使用rand函数,目前c++上生成随机数的主流方法有以下3种

一:直接使用rand()生成,如

number=rand();

这样有一个坏处,就是生成的数只会在一个列表中循环,因为c++生成的数是伪随机数,由电脑在序列中按照一定的种子选择,为了解决这个问题,我们就要用到srand函数。。

二:改变随机数生成种子,如

先使用srand(任意数字,如114514)改变种子,随后再

number=rand();

但是这样比较麻烦,毕竟我们还要一次一次手动去改变,为了方便一点,我们可以使用time函数来生成种子。

三:time生成种子(time包含在头文件<ctime>中),如

seed=time(0);

srand(seed);

number=rand();

这样就能方便的生成随机数,但它仍然有一个缺点,因为time获取的是秒数,所以一秒内只能改变一次种子。

假如你要在1秒内生成多个随机数,用上列的方法却只能得到同一个数,为了解决这个问题,我自己设计了一个程序,下面大家一起来看看罢(心虚)。

#include <iostream> //导入输入输出流

#include <cstdlib> //导入rand函数头文件

#include <ctime> //导入time函数头文件

using namespace std; //使用命名空间

int main(){ // 主函数,没什么好说的

unsigned seed,times; //定义两个无符号变量

int randd; //定义int型变量

times=time(0); //用time函数获取秒数

seed=times; //种子的初始状态用time

while (seed){ //无限循环

srand(seed); //将种子改变为变量seed

randd=rand(); //生成随机数

cout << randd << endl; //显示随机数

if (seed>1000000) seed=12; //避免因数值过大而导致程序崩掉

else seed+=randd; //将seed加上随机生成的数,完美保证了随机数的快速生成

}

}

总之,这就是我摸索出来的方法,

如果本文对你有所帮助,请点一个大大的赞 //没有硬币(大嘘)

如果你发现了错误,请在评论区指出

谢谢大家

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/463044
推荐阅读
相关标签
  

闽ICP备14008679号