博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
对rand与srand函数的理解补充
阅读量:6137 次
发布时间:2019-06-21

本文共 596 字,大约阅读时间需要 1 分钟。

函数一:int rand(void);

从srand (seed)中指定的seed开始,返回一个[seed, RAND_MAX(0x7fff))间的随机整数。

函数二:void srand(unsigned seed);

参数seed是rand()的种子,用来初始化rand()的起始值。 可以认为rand()在每次被调用的时候,它会查看:

1) 如果用户在此之前调用过srand(seed),给seed指定了一个值,那么它会自动调用

srand(seed)一次来初始化它的起始值。

2) 如果用户在此之前没有调用过srand(seed),它会自动调用srand(1)一次。 根据上面的第一点我们可以得出:

a. 如果希望rand()在每次程序运行时产生的值都不一样,必须给srand(seed)中的seed一个变值,这个变值必须在每次程序运行时都不一样(比如到目前为止流逝的时间)。
b. 否则,如果给seed指定的是一个定值,那么每次程序运行时rand()产生的值都会一样,虽然这个值会是[seed, RAND_MAX(0x7fff))之间的一个随机取得的值。
c. 如果在调用rand()之前没有调用过srand(seed),效果将和调用了srand(1)再调用rand()一样(1也是一个定值)。

转载于:https://blog.51cto.com/14233363/2371783

你可能感兴趣的文章
Rsync使用注意事项
查看>>
沐风老师3dsMax手把手教系列:椅子建模(款式001)
查看>>
Mac Tomcat 安装与配置
查看>>
自己写中文分词之(二)_用HMM模型实现分词
查看>>
java开发过程中的命名规范
查看>>
Linux系统启动过程及其修复过程简析(CentOS5、6)
查看>>
CentOS 7 防火墙设置
查看>>
RHEL java 环境变量
查看>>
关于embedded linux的使用、开发、学习的一点自已的体会
查看>>
找到一部不错的c语言学习教程
查看>>
openstack 虚拟机添加网卡
查看>>
Groovy学习笔记(6)-javax.script.* API
查看>>
RocketMQ服务搭建
查看>>
微信支付 - 可以下单但是无法收到通知消息Log总显示begin notify
查看>>
分享我如何活用notepad++
查看>>
Object-c的基础概念
查看>>
自我关系的建立
查看>>
mysql读取配置文件的顺序
查看>>
《游戏程序设计模式》 2 - 顺序模式
查看>>
数据过滤器注解@Filter 如何在hibernate、spring data jpa中调用
查看>>