exp2

随机生成无向图并进行欧拉图的判定

随机种子初始化

srand((unsigned int)time(NULL));

  1. time(NULL):
    功能:调用系统时钟,获取当前时间。
    返回值:返回从 1970 年 1 月 1 日 00:00:00(Unix 纪元)到现在经过的总秒数。
    NULL:表示直接值获取秒数,不需要将结果存入额外的地址。
    意义:因为时间每秒都在变,提供了随机数生成器最需要的“不确定性”。

  2. time_t:
    定义:这是 time() 函数返回的数据类型,定义在 <time.h> 中。
    time_t seconds = time(NULL);
    本质:通常是一个 64 位长整数(long long)。
    目的:为了在不同电脑系统上统一表示时间。

  3. unsigned int:无符号整数
    定义:一种只能存储 非负整数的整数类型。
    特性:相比普通 int,因为没有复数,能表示的正数范围更大。
    意义:随机数种子的计算公式只需要正整数,负数在这里没有意义。

  4. (unsigned int):强制类型转换
    操作:将 64 位的 time_t 数据强制修改成 32 位的 unsigned int。
    原因:srand 函数规定只接收 32 位的参数。如果不加这个括号,VS Code 会弹出警告,提醒可能会丢失数据。
    意义:虽然截断了高位数据,但剩下的低位秒数在每一秒钟依然是变化的,足够作为随机种子使用。

  5. srand():播种函数
    input :接收一个 unsigned int 类型的数字作为“种子”。
    output:无返回值(void)。它只是默默地修改系统内部的随机状态。

posted @ 2026-04-09 19:56  Sharkmooon  阅读(25)  评论(0)    收藏  举报