打印

随机数产生问题

[复制链接]
4279|25
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
_nop_|  楼主 | 2007-11-11 15:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想在使用单片机时产生0-255的随机数,从网上查着的资料都是这样实现的:
#include <stdlib.h> 
#include <time.h> 
main() 

int i; 
srand(time(0)); //初始化随机种子 
i = rand(); //产生随机数 

在KEIL C 里没有time.h这个头文件,希望有这块儿的朋友给我发一份。
如果有其它方法也可以给我个建议。
先谢谢了。

相关帖子

沙发
huangqi412| | 2007-11-11 15:38 | 只看该作者

keil中有一个把,好象不是time.h,忘了

使用特权

评论回复
板凳
_nop_|  楼主 | 2007-11-11 16:20 | 只看该作者

麻烦楼上的帮我在想想吧 谢谢

使用特权

评论回复
地板
computer00| | 2007-11-11 18:03 | 只看该作者

这个没有。自己做个时钟吧,只要时间能走就行,准不准没

使用特权

评论回复
5
huangqi412| | 2007-11-11 18:33 | 只看该作者

不要自己做啊,keil中有一个头文件中有产生随机数的库函数

忘了是哪个,只记得产生的int型,不是char,

使用特权

评论回复
6
happystar| | 2007-11-11 18:41 | 只看该作者

keil 有这个函数的。

头文件叫“stdlib.h".
目录:C:KeilC51INCSTDLIB.H
如下:
#ifndef __STDLIB_H__
#define __STDLIB_H__
......
extern int   rand ();
extern void  srand (int);
......
你可以直接使用rand()等函数的

使用特权

评论回复
7
computer00| | 2007-11-11 19:03 | 只看该作者

有点儿倒塌...楼主要的是time...

使用特权

评论回复
8
huangqi412| | 2007-11-11 19:40 | 只看该作者

00,估计是你理解错了吧,lz要的是产生随即数

因为lz看到产生随即数的函数叫time.h,所以才找time.h
用其他头文件可以产生随即数,当然可以给他找其他头文件,

使用特权

评论回复
9
_nop_|  楼主 | 2007-11-11 20:50 | 只看该作者

能产生随机数就好

使用特权

评论回复
10
computer00| | 2007-11-11 21:19 | 只看该作者

用rand产生的是伪随机数,在使用rand之前需要初始化一个"种子"

而楼主的程序,就是用当前的时钟来做为这个初始化的"种子", 由于时间的随机性,
使得数据更接近随机数.

光用rand的话,每次开机的结果都是一样的。

使用特权

评论回复
11
5_0_5| | 2007-11-11 21:22 | 只看该作者

最近好象有几天没见00了

使用特权

评论回复
12
computer00| | 2007-11-11 21:45 | 只看该作者

呵呵,这几天有点事,出去拉~~~今早才回来~~~~~

使用特权

评论回复
13
_nop_|  楼主 | 2007-11-11 22:32 | 只看该作者

还有问题

#include <stdlib.h> 
int i; 
main() 

while(1)
i = rand()%256; //产生随机数


这个返回的好像挺随机的 大家看看这算不算随机数啊
因为我还是找不着time.h 产生不了“srand(time(0))//初始化随机种子”

使用特权

评论回复
14
ayb_ice| | 2007-11-12 08:51 | 只看该作者

KEIL肯定没有time.h

使用特权

评论回复
15
HWM| | 2007-11-12 09:09 | 只看该作者

呵呵,想办法保存这个“种子”,让它一代代地繁衍下去。

使用特权

评论回复
16
computer00| | 2007-11-12 09:29 | 只看该作者

是否符合要求,看你实际的需要了。有时候这样的随机数就

使用特权

评论回复
17
dld2| | 2007-11-12 09:53 | 只看该作者

种子

搞个温度传感器,取小数点后的几位。
或者未初始化的RAM读值不知道行不行。

使用特权

评论回复
18
gyt| | 2007-11-12 09:54 | 只看该作者

15楼

HWM说得太有趣了:)

使用特权

评论回复
19
HWM| | 2007-11-12 10:00 | 只看该作者

两个方法都不太适宜

第一种方法,一方面成本提高,另外这样的初始值并非符合均衡分布。
第二种方法的不适宜性就显而易见了。

使用特权

评论回复
20
huangqi412| | 2007-11-12 11:03 | 只看该作者

15f估计是袁龙平的弟子,搞杂交水稻的,呵呵,

15f:呵呵,想办法保存这个“种子”,让它一代代地繁衍下去。
记得多保存几粒进行杂交.

产生岁机数用系统的那个头文件不错了啊,当然,应该产生的是伪随机数.估计lz对这个随机数要求不会是太严格.
time.h是别个自己写的,keil中不会有time.h这个文件

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

19

帖子

0

粉丝