随机函数
stdlib.h 中的 int rand(void) 产生随机数。需要注意的是,生成的
范围是 0-32767。 直接使用这个参数生成的是伪随机数。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
for (i=0;i<0x200;i++)
{
if ((i % 0x10)==0) {printf("\n");}
printf("%5d ",rand());
}
return 0;
}
上面这个程序将生成256个随机数,因为产生的是伪随机数,因此,两次
运行产生的结果是相同的。
使用 void srand( unsigned int seed ) 会指定随即种子,但是对于
相同的随机种子,产生的序列还是一样的 ... ... 看来生成随机数真的有必要
使用时钟生成种子。
clock_t clock(void) 是同 rdstc 类似的函数,
#include <stdio.h>
#include <math.h>
#include <time.h>
#include <limits.h>
void compute( void )
{
int i, j;
double x;
x = 0.0;
for( i = 1; i <= 10000; i++ )
for( j = 1; j <= 10000; j++ )
x= sqrt( (double) i * j );
printf( "%16.7f\n", x );
}
void main()
{
clock_t starttime,endtime;
starttime=clock(); //开始计时
compute();
endtime=clock(); //停止计时
printf( "Execution time was %lu \n",(endtime-starttime)/CLOCKS_PER_SEC); //显示经过了多少秒
}
使用time函数获取当前时间,结果是32位的unsigned long,想必可以
用来做随机种子。
#include <stdio.h>
#include <time.h>
void main()
{
time_t time_of_day;
time_of_day = time (NULL);
printf( "%lu \n",time_of_day);
}
Z.t
2008-1-22