iar 随机数

iar for arm : stdlib.h / rand()

说明 :
rand()的内部实现是用线性同余法做的,是伪随机数,因其周期特别长,故在一定的范围里可看成是随机的。 

返回:

函数返回的随机数值的范围在0至RAND_MAX 间。RAND_MAX的范围由返回数据的类型决定,iar for arm中返回类型为int (4byte)。

0~RAND_MAX每个数字被选中的机率是相同的。用户未设定随机数种子时,系统默认的随机数种子为1。

rand()产生随机数算法每次执行时是相同的。若要不同,需用真随机的数来初始化它。就是种一个真随机的种子。就要用函数srand()了。

参数:无

stdlib.h / srand()

说明:

设置随机数的种子。如果每次seed都设相同值,rand()所产生的随机数值每次就会一样。

返回:无

参数:

iar for arm 中输入参数类型是 unsigned int (4字节)。此数需通过个办法来获得真随机性。

如:RSSI信号,上电RAM中值,AD采集一个噪声端口,定时器随机计数,等等。

 

用法:

rand()和srand()要一起使用,为使每次得到的随机数不一样,首先,srand()用来初始化随机数种子,才能用rand()来产生随机数。
种子的每一位都需是真随机,然后组成一个真随机数(例如32bit,需32次从adc里取出一个bit)。且种子不能为0.

“模除+加法”的方法(rand() % 100+1)可以实现区间内随机。乘以一个间隔,可实现间隔随机。

***************<暂停,休息一下!>*********************************************

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值