C语言srand((unsigned)time(NULL)); 是什么意思

详细说下,随机+时间函数?
2024-10-28 05:51:33
推荐回答(5个)
回答(1):

srand()函数用来设置算法的种子,time(NULL)返回当前的时间,先调用srand(time(NULL))是把当前的时间作为种子,是程序每次运行产生不同的随机数序列。

涉及到三个概念:

1、随机数:数学上产生的都是伪随机数,真正的随机数使用物理方法产生的。

2、随机数种子:随机数的产生是由算术规则产生的,srand(seed)的随机数种子不同,rand()的随机数值就不同,倘若每次的随机数种子一样,则rand()的值就一样。所以要产生随机数,则srand(seed)的随机数种子必须也要随机的。

3、用srand()产生随机数种子

原型:void srand ( unsigned int seed )。作用是设置好随机数种子,为了让随机数种子是随机的,通常用time(NULL)的值来当seed。

扩展资料:

C语言其他产生随机数的方法。

1、函数名: rand

功能: 随机数发生器

用法: void rand(void);

程序例:

2、函数名: random

功能: 随机数发生器

用法: int random(int num);

程序例:

3、函数名: randomize

功能: 初始化随机数发生器

用法: void randomize(void);

程序例:

参考资料来源:百度百科--srand

回答(2):

初始化随机函数种子,srand((unsigned)time(NULL));是拿系统时间作为种子,由于时间是变化的,种子变化,可以产生不相同的随机数。

使用时,参数可以是unsigned型的任意数据,比如srand(10);

如果不使用srand

用rand()产生的随机数,在多次运行,结果是一样的。

回答(3):

srand((unsigned)time(NULL));
这个是种子函数 为rand函数提供不同的种子 每次运行程序产生不同的随机数
不然rand函数每次运行程序产生的随机数都是一样的

回答(4):

如何运用time函数和srand函数生成随机数
#include
#include //srand()、rand()
#include //time();
#include

#define N 50

int main()
{
int n;

srand((unsigned)time(NULL));//设置随机数种子
while (1)
{
n = (rand() % 10) + 1 ;//产生1~10的随机数
//rand()产生的是一个很大的数,对其求余就可以达到限定范围的目的
printf("%d ", n);
getch();
}
return 0;
}

回答(5):

设置rand()随机序列种子。

对于给定的种子seed, rand()会反复产生特定的随机序列。     

 srand( time(NULL) );   
 for( i = 0; i < 10; i++ )      
    printf( "Random number #%d: %d\n", i, rand() );