c语言中随机函数的算法
c语言中随机函数的算法
[解决办法]
调用函数就可以了
int temp;
srand((unsigned)time(NULL)); //初始化
temp=rand(); //调用随机产生数
需要头文件 time.h stdlib.h
[解决办法]
随机算法
包含头文件: #include <time.h>
用时间做种子: srand((unsigned) time(NULL));
生成0~n-1之间的随机数:
int getnumber(int n)
{
return rand()%n;
}
[解决办法]
我们知道rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机
正常开机后,这个种子的值是定了的,除非你破坏了系统,为了改变这个种子的值,C提供srand()函数,它的原形是void srand( int a) 功能是初始化随机产生器既rand()函数的初始值,即使把种子的值改成a; 从这你可以看到通过sand()函数,我们是可以产生可以预见的随机序列,
那我们如何才能产生不可预见的随机序列呢?我们可能常常需要这样的随机序列,是吧。利用srand((unsign)(time(NULL))是一种方法,因为每一次运行程序的时间是不同的,对了,你知道time() 函数的功能是返回从1970/01/01到现在的秒数的吧,可能这个起始时间不正确,
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void main()
{
srand( (unsigned)time(NULL) );//随机产生一个rand()函数的初始值
int x=rand();
a=(int)x%(max-min+1)+min;//随机数的范围[max,min]
printf( "%d ",a);
}