`rand()` 函数的基本用法如下:
c
#include <stdio.h>
#include <stdlib.h>
int main() {
// 初始化 srand 以确保每次运行时得到不同的随机序列。
// 这里我们一般会拿当前时间作为种子值来初始化随机数发生器
unsigned seed = time(NULL);
srand(seed);
int random_number;
for(int i=0; i<10; ++i) {
// rand() 返回一个介于 0 到 RAND_MAX (常量,在多数系统上为32767)之间的整数值
random_number = rand();
printf("Random number: %d\n", random_number);
}
return 0;
}
然而,默认情况下产生的随机数范围可能并不满足所有场景的需求,可以通过对结果进行取模或者除以某个基数变换其分布区间:
c
random_number = (rand() % MAX_VALUE_PLUS_ONE) + MIN_VALUE;
// 上述代码将生成 [MIN_VALUE, MAX_VALUE] 范围内的随机整数
另外值得注意的是,为了获得更好的“随机”效果和可复现性的平衡,应首先调用 `srand` 设置初始状态或者说"种子"(seed),如上述示例所示是通过系统的实时钟(time())设置的。如果不这样做的话,那么每当你启动并连续多次执行同一个含有 `rand()` 的程序段落时,它会产生相同的系列 "随机" 数字。
更高级的应用实例可以涉及游戏开发、模拟算法或者是密码学等领域。例如,在创建策略游戏中,可以用 `rand()` 来决定敌方单位的行为;而在蒙特卡洛方法(Monte Carlo simulations)等统计模拟中,则需要大量依赖高效的随机数生成来进行计算推断。
综上所述,《C》语言中的 `rand()` 随机数生成函数提供了基本且实用的功能,并能在各种应用场景下通过对返回结果的操作与转换,灵活地满足开发者对于不同范围内随机数据的需求。但若需更高精度或是特定概率分布要求的真实感更强的随机数源,则往往要借助更为复杂的专业级 PRNG 算法甚至硬件支持了。