exp2
随机生成无向图并进行欧拉图的判定
随机种子初始化
srand((unsigned int)time(NULL));
-
time(NULL):
功能:调用系统时钟,获取当前时间。
返回值:返回从 1970 年 1 月 1 日 00:00:00(Unix 纪元)到现在经过的总秒数。
NULL:表示直接值获取秒数,不需要将结果存入额外的地址。
意义:因为时间每秒都在变,提供了随机数生成器最需要的“不确定性”。 -
time_t:
定义:这是 time() 函数返回的数据类型,定义在 <time.h> 中。
time_t seconds = time(NULL);
本质:通常是一个 64 位长整数(long long)。
目的:为了在不同电脑系统上统一表示时间。 -
unsigned int:无符号整数
定义:一种只能存储 非负整数的整数类型。
特性:相比普通 int,因为没有复数,能表示的正数范围更大。
意义:随机数种子的计算公式只需要正整数,负数在这里没有意义。 -
(unsigned int):强制类型转换
操作:将 64 位的 time_t 数据强制修改成 32 位的 unsigned int。
原因:srand 函数规定只接收 32 位的参数。如果不加这个括号,VS Code 会弹出警告,提醒可能会丢失数据。
意义:虽然截断了高位数据,但剩下的低位秒数在每一秒钟依然是变化的,足够作为随机种子使用。 -
srand():播种函数
input :接收一个 unsigned int 类型的数字作为“种子”。
output:无返回值(void)。它只是默默地修改系统内部的随机状态。

浙公网安备 33010602011771号