[ZLG-ARM] rand() 随机数无效,大家碰到过吗?

[复制链接]
 楼主| nj21ic 发表于 2011-9-25 11:00 | 显示全部楼层 |阅读模式
rand() 随机数无效,大家碰到过吗?
在用iar arm 调试arm芯片时,发现每次启动程序后,几次执行rand()得到一组随机数都相同。例如
                   srand(1);
                   temp1=rand()%8;//得到temp1=2
                   temp2=rand()%8;//得到temp2=4
                   temp3=rand()%8;//得到temp3=1
每次启动后得到的结果都是这样2,4,1.从没变过?如何解决?
zhuyl456 发表于 2011-9-25 21:48 | 显示全部楼层
把那个srand();去掉就可以了
ppy521 发表于 2011-9-26 08:36 | 显示全部楼层
即使是把srand()去掉也没有用,同样得到这样的结果。
C语言产生的随机数都是伪随机数,每次上电产生的随机数肯定都是一样的。
唯一的办法是使用硬件随机数,比如:AD采样、温度等自然随机值。
ppy521 发表于 2011-9-26 08:38 | 显示全部楼层
我的办法是上电时先使用AD采样悬空引脚,然后再用这个采样值初始化srand(),这样得到的就是真正的随机数。
ayb_ice 发表于 2011-9-26 11:40 | 显示全部楼层
本来就是伪的
daisyly 发表于 2011-9-26 15:41 | 显示全部楼层
就这样? 2# zhuyl456
ilovezeno 发表于 2011-9-26 20:01 | 显示全部楼层
你用一个seed,当然产生的随机数列是一样的了。。。。这个和伪不伪随机有啥关系哦。。。。
每次上电想办法给srend提供个随机种子,比如ad脚读数,那不就真随机了么。。。。

话说,很多人不学c就开始写程序了?都是神人阿。。。。
 楼主| nj21ic 发表于 2011-9-26 21:21 | 显示全部楼层
高人啊
 楼主| nj21ic 发表于 2011-9-26 21:21 | 显示全部楼层
高人啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

36

主题

317

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部