垂直性门户网站有哪些,天津做网站美工,免费上外国网站的浏览器,建立网站教程视频C 中随机函数random函数的使用方法一、random函数不是ANSI C标准#xff0c;不能在gcc,vc等编译器下编译通过。 可改用C下的rand函数来实现。1、C标准函数库提供一随机数生成器rand#xff0c;返回0#xff0d;RAND_MAX之间均匀分布的伪随机整数。 RAND_MAX必须至少为32767。…C 中随机函数random函数的使用方法一、random函数不是ANSI C标准不能在gcc,vc等编译器下编译通过。 可改用C下的rand函数来实现。1、C标准函数库提供一随机数生成器rand返回0RAND_MAX之间均匀分布的伪随机整数。 RAND_MAX必须至少为32767。rand()函数不接受参数默认以1为种子(即起始值)。 随机数生成器总是以相同的种子开始所以形成的伪随机数列也相同失去了随机意义。(但这样便于程序调试)2、C中另一函数srand()可以指定不同的数(无符号整数变元)为种子。但是如果种子相同伪随机数列也相同。一个办法是让用户输入种子但是仍然不理想。3、 比较理想的是用变化的数比如时间来作为随机数生成器的种子。 time的值每时每刻都不同。所以种子不同所以产生的随机数也不同。// C随机函数(VC program)#include #include #include #define MAX 100void main(){srand( (unsigned)time( NULL ) );//srand()函数产生一个以当前时间开始的随机种子for (int i0;i10;i)cout}二、rand()的用法rand()不需要参数它会返回一个从0到最大随机数的任意整数最大随机数的大小通常是固定的一个大整数。 这样如果你要产生0~10的10个整数可以表达为int N rand() % 11;这样N的值就是一个0~10的随机数如果要产生1~10则是这样int N 1 rand() % 10;总结来说可以表示为a rand() % n其中的a是起始值n是整数的范围。 若要0~1的小数则可以先取得0~10的整数然后均除以10即可得到随机到十分位的10个随机小数若要得到随机到百分位的随机小数则需要先得到0~100的10个整数然后均除以100其它情况依此类推。通常rand()产生的随机数在每次运行的时候都是与上一次相同的这是有意这样设计的是为了便于程序的调试。若要产生每次不同的随机数可以使用srand( seed )函数进行随机化随着seed的不同就能够产生不同的随机数。如大家所说还可以包含time.h头文件然后使用srand(time(0))来使用当前时间使随机数发生器随机化这样就可以保证每两次运行时可以得到不同的随机数序列(只要两次运行的间隔超过1秒)。注rand()产生的是0 to RAND_MAX (32767)上的随机数而32767不能被11整除。因此 int N rand() % 11; 得到的随机数并不是从0-10一致分布的取910的概率取0-8几个数字的概率少了11/32767约为1/2978所以要取0~M的随机数若M较小时这样作问题不大但M较大时例如M30000则取到0-2767的概率是取后面几个数字的两倍严重不符合随机分布三、按要求设置概率比如要设置一个10%的概率问题我们可以采取rand()函数来实现在if条件句判断里用rand()得到的值%一个设定的值再与另一个值做“”运算。例如if(1rand()%10){ //10%的概率达成这里编辑余下代码}else{ //90%的概率没达成这里编辑余下代码}如有疑问请留言或者到本站社区交流讨论感谢阅读希望能帮助到大家谢谢大家对本站的支持