您的位置 首页 解答

老司机教您单片机C言语怎么发生随机数

随机数在单片机的应用中也是很多的,当然产生随机数的方法有很多,当中有一个就是利用单片机定时器,取出未知的定时器THX和TLX的值,再加以运算得到一个规定范围内的随机数值。这做法也是可行的。或者预先

  随机数在单片机的使用中也是许多的,当然发生随机数的办法有许多,傍边有一个便是使用单片机定时器,取出不知道的定时器THX和TLX的值,再加以运算得到一个规则范围内的随机数值。这做法也是可行的。或许预先写好一个随机数表,然后进行取数据。也是能够的。

  

  KEIL里边发生随机数的函数确实是rand(),但头文件是stdlib.h,不是time.h。C言语供给了一些库函数来完成随机数的发生。C言语中有三个通用的随机数发生器,分别为
rand函数, random函数, randomize
函数;可是rand函数发生的并不是真意正义上的随机数,是一个伪随机数,是依据一个数,称之为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时分,就契合正态发布,然后相当于发生了随机数,但这不是真实的随机数,当计算机正常开机后,这个种子的值是定了的,除非破坏了体系,为了改动这个种子的值,C供给了srand()函数,它的原形是void
srand( int
a);在调用rand函数发生随机数前,必须先使用srand()设好随机数种子,假如未设随机数种子,rand()在调用时会主动设随机数种子为1。一般用for句子来设置种子的个数。

  单片机发生随机数的两种办法

  办法一:定时器直接随机取值

  每按一次按键生成一个随机数,这个随机数实践是把定时器的值给取出来了,并不能算肯定的随机、办法二才是真实意义上的随机。

  办法二:用定时器加rand()随机函数来完成

  单片机上电之后经过按键去发动取随机数,若是单片机上电就当即取随机数的话,那每次上电随机的成果都是相同的。然后是0
到9不重复的随机数,程序中用了循环来判别是否和前面取的随机数相同,相同则进入,下次取随机数,不同则存入数组。

  本文是资深工程师共享的单片机C言语怎么发生随机数的办法,欢迎广阔工程师谈论留言评论,一同共享常识、生长和前进。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/jieda/130392.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部