srand 和rand函数原型?

来源:百度知道 编辑:UC知道 时间:2024/06/20 07:35:12
大家好,我知道C语言中srand和rand这两个函数是用来生成随机数的。我也知道怎么用!

可是它们两个的函数原型是什么呢?也就是说它们是具体如何实现的呢?
我在Linux内核中没有找到。
谢谢大家的回答!
这么说可能确实封装到库中了,所以看不到。
可是如果自己实现一个产生随机数的函数的话,该如何实现呢?

1.rand 随机函数发生器
用法:int rand(void);
用法?:void srand(unsigned seed);
说明:rand使随机数发生器产生一范围从0~2的随机数。发生器通过调用参数值为1的srand函数可重初始化,也可用给定的函数值。
seed调用srand产生一新的起点。
可移植性:UNIX系统适用
源程序:
#include<stdlib.h>
#define MULTIPLIER 0x015a4e35L
#define INCREMENT 1
static long Seed = 1;
int rand(void)
{
Seed = MULTIPLIER*Seed + INCREMENT;
return ((int)(Seed>>16) & 0x7fff);
}
2.srand 初始化随机数发生器
用法:void srand(unsigned seed);
源程序:
#include<stdlib.h>
#define MULTIPLIER 0x015a4e35L
#define INCREMENT 1
static long Seed = 1;
void srand(unsigned seed)
{
Seed = seed;
}
摘自TC库函数源程序一书。

自己实现一个产生随机数的函数见高手这里:www.luocong.com/articles/show_article.asp?Article_ID=24

两个不一样的。
srand(种子) 就是播种
rand() 是产生随机数的。