C++中的尺度库<cstdlib>(包括在<iostream>中)供给两个辅助天生伪随机数的函数:rand()和srand()。 函数一:int rand(void); 从srand(seed)中指定seed开端,C++如何使输出的最后一个数没有逗号,返回一个范畴介于[seed,RAND_MAX(0x7fff))的随机整数 函数二:void srand(unsigned seed); 参数seed是rand()的随机种子,即用来初始化rand()的起始值。
举多少个例子阐明一下,假设咱们要取得0~6之间的随机数(不包含6自身): 程序一(不指定seed的值): for(int i=0;i<10,C++培训机构哪里好?如何选择正确的IT培训机构?;i++) { ran_num=rand()%6; cout<<,C++中如何连接Access数据库?;ran_num<<“ ”,C++ 帮忙如何16进制转为10进制; } 每次运行程序一都将输出:5 5 4 4 5 4 0 0 4 2 程序二(指定seed为1): srand(1); for(int i=0;i<10;i++) { ran_num=rand()%6,c++ 如何连接mysql数据库; cout<<ran_num<<“ ”; } 每次运行程序二都将输出:5 5 4 4 5 4 0 0 4 2,跟程序一的结果完整一样。 程序三(指定seed的值为6): srand(6); for(int i=0;i<,c++ 中如何声明一个 int 变量;10;i++) { ran_num=rand()%6; cout<<ran_num<<“ ”; } 每次运行程序三都将输出:4 1 5 1 4 3 4 4 2 2,固然值跟程序二不一样,不外每次运行时的结果也都雷同。 程序四(指定seed的值为当前体系流逝了的时间,单位为秒(time_t time(0))): #include<ctime> …… srand((unsigned)time(0)); for(int i=0;i<10;i++) { ran_num=rand()%6; cout<<ran_num<<“ ”; } 运行程序四的时候,第一次输出:0 1 5 4 5 0 2 3 4 2,第二次输出:3 2 3 0 3 5 5 2 2 3,... ...每次的运行结果都不一样,由于每次启动程序时的时刻都不同。 对于time_t time(0) time_t 被定义为长整型,它将返回从1970年1月1日零时零分零秒到当初所阅历过的时光,单位为秒。比方输出 cout<<time(0) ,将得到值约为1169174701,约即是37(年)* 365(天)* 24(小时)* 3600(秒)(月跟日不计)。 关于ran_num=rand()%6 将rand()的返回值与6求模是必需的,这样才干确保目标随机数落在[0,6)之间,否则很可能会得到一个十分宏大的数值 (RAND_MAX个别为32767)。一个通用的公式是:要想获得[a,b)之间的随机整数,应用(rand()%(b-a))+ a,成果包含 a 而不含 b 。
(责任编辑:admin)
|