srand((unsigned)(NULL))里的unsigned到底有什么用

供稿:hz-xin.com     日期:2025-01-14
srand((unsigned)time(NULL));这个函数实际有什么用有例子最好

计算机生成的随机数实际上是“伪随机数”,因为它并非真正“随机”。
当 随机数“种子值”固定时,它生成的随机数序列是固定的。
例如 第一次产生 41 67 34 0 69 14, 第二次,第三次...产生的还是41 67 34 0 69 14。
没有 srand() 这句,就是用 默认 种子值。
用 srand((unsigned)time(NULL)); 就是用当前时间秒数(从1970年到现在的时间间隔,单位秒)为种子。
时间变,种子就变,产生的 随机数序列 就变化。增进了“随机性”。

用别的方法设种子当然也可以,例如 写
srand(54321); for (i=0;i<10;i++) x[i]=rand()%100;
srand(678910); for (i=0;i<10;i++) y[i]=rand()%100;

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

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

如果不使用srand

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

srand作用是设置随机数的“种子”,调用rand函数提供一个伪随机数列。


srand((unsigned)(NULL)) 其实就是 srand(0),用unsigned只是为了防止编译时的警告,对程序运行没有任何影响。

相同的种子,会得到完全相同的随机数列,即这个程序无论执行多少次,其number都是一个固定值。

rand函数的返回值类型是int,是有符号的。如果你想要无符号数,需要写成

unsigned int number = (unsigned)rand();


一般程序都使用当前系统时间作为随机数种子,既有代码:


#include<time.h> // time函数的头文件
...
srand(time(NULL));
...
int n = rand();


srand的参数,是一个正整数的随机因子。你不使用time,而是使用0(NULL)也同样可以获取随机数。或者说,你不调用srand,直接number = rand();也可以获取随机数。
srand的作用,就是要获取不同的随机因子,让rand的结果每次不同,当你需要多次调用rand获取不同随机数的时候,是需要的。而是用time函数,也就是这个作用(用时间作为随机因子)

加上time会报错,因为你缺少了头文件包含
#include<time.h>

在c语言里,为什么rand()每次生成的数都一样?
rand((unsigned)time(NULL))你生成的数字一样,是因为没有根据它的时间来变化,上面的代码就可以了.

c语言中rand是什么意思
rand()是C语言中产生随机数的一个函数,但是需要注意的是,产生的是伪随机数。rand()用法举例:产生1到100之间的随机数 include int main(){ srand((unsigned)time(NULL));\/\/产生随机数种子 int rand_num=(rand()%100)+1;\/\/产生1到100直接的随机数 printf("rand_num=%d\\n

在c语言里,为什么rand()每次生成的数都一样?
那是因为rand()生成的是伪随机数,需要种子来产生不同的随机数。如果在预编译时声明#include<ctime>,则可用生成种子的函数 srand((unsigned)time(NULL)) ,因为时间值可以看成是一个随机的量(即每一时刻都不同),所以就生成了变化的伪随机数 ...

C语言里面有一行真看不懂了,求教各位srand((unsigned)time(NULL))拜托...
函数rand()是真正的随机数生成器,而srand()会设置供rand()使用的随机数种子。srand()括号里面的值,我们称之为种子。系统会根据种子的值放入一套系统算法内 来 生成一组随机数,如果种子的值相同。比如srand(1),系统将1放入系统算法内,产生一组固定的随机数。那么使用rand()时,rand()取到的...

c语言rand
for(j=0;j<4;j++)a[i][j]=rand()%90+10;则从a[0][0]到a[5][4]的值都相同.因此要在for(i=0;i<5;i++)之前加上如下语句:srand ( (unsigned) time (NULL) );srand()的形参要求是unsigned型,而time()的返回值是长整型,故需强制转换.而time(NULL)返回从1970年0时0分0秒到...

C语言srand和rand函数
rand()函数,一般根srand()函数一起用。它们在一起,作用是:产生一个随机数。通常格式为:srand ((unsigned)time (NULL));a=rand()%x;\/\/a,x,均为整型变量,其中,x在之前应被赋值。srand函数里面的unsigned也可以换成其它的。例如:int之类的数据类型,但结果也会有相应的变化。通过rand函数产生...

randc语言随机函数怎么用
include <stdlib.h> include int main() { srand((unsigned)time(NULL)); \/\/ 使用当前时间为随机数种子 int dice = (rand() % 6) + 1;return 0;} 这样一来,每次运行程序时,都会生成一组不同的随机数序列。通过这种方式,可以确保每次生成的随机数都具有随机性,为各种应用场景提供支持。

用rand随机的随机数
在Excel中,利用RAND()函数生成随机数的方法非常直观。要获得5到18之间的随机数,只需在任意单元格输入公式"=RAND()*(18-5)+5",然后按回车键。这样,每次输入都会得到一个在指定范围内的随机数。若需批量生成,只需选择生成的随机数,进行填充即可,如图所示。需要注意的是,如果你想让随机数更具...

C当中的取随机数函数rand()的具体用法是什么?
c语言之rand函数的使用在编程时我们有时总希望自己产生一个随机数字,以供使用,那么下面介绍rand函数的使用。方法\/步骤 写入头文件 include <stdlib.h> #include <stdio.h> #include 变量的定义 void main( void ) { int i,k;srand( (unsigned)time( NULL ) ); \/*选取种子文件*\/ for(...

c语言random()的问题
rand()是不能产生真正的随机数的。即使不能产生真正的随机数,也要大概接近。而rand()好象每次的随机都一样。之所以rand()每次的随机数都一样是因为rand()函数使用不正确。各种编程语言返回的随机数(确切地说是伪随机数)实际上都是根据递推公式计算的一组数值,当序列足够长,这组数值近似满足均匀...