c/c++ 随机函数rand()和srand()学习笔记

来源:互联网 发布:淘宝申请退款会不退吗 编辑:程序博客网 时间:2024/05/31 19:49

用到函数rand()以及srand(unsigned int seed)     //在stdlib.h

只有rand(),生成一个固定数字,对于同一台电脑得到的是相同的结果(注:在网上看到,同一台电脑对于不同操作系统产生的不一样)

配合srand可以生成不同的随机数                //srand()用来生成随机种子,是随机数发生器的初始化函数

rand()内部是用线性同余法实现的       //这个不会再见   日后有机会学了再来补充rand()和srand()内部的东西(立flag)

rand()产生0~RAND_MAX之间的随机数

举例函数段:

#include<iostream>#include<time.h>#include<cstdlib>int main(){      srand((unsigned)time(NULL));    for(int i=1;i<11;i++)        cout<<rand()<<endl;    return 0;}

随机种子是由系统时钟而来,即time(NULL)。time(time_t * timer)返回类型是time_t,返回自Unix纪元起到当前时间的秒数

产生范围(x~y)内的随机数:
rand()%(y-x+1)+x
备注:
1.生成相同随机数的概率很小

2.srand函数取随机种子,rand()函数利用该随机种子可生成一序列数字

3.回头可以尝试做个抽学号工具

4.第一次发博客,文字编辑不来QAQ