C语言函数:随机数、游戏模拟与存储作用域解析
1. 随机数生成与缩放
在C语言中,随机数的生成是一个常见的需求。当我们运行程序多次并观察结果时,会发现如果每次提供不同的种子,程序会得到不同的随机数序列。若要在不每次手动输入种子的情况下实现随机化,可以使用如下语句:
srand(time(NULL));
此语句会让计算机读取时钟,自动获取种子值。 time 函数返回自1970年1月1日午夜以来经过的秒数,该值会被转换为无符号整数,并用作随机数生成器的种子。 time 函数的原型在 <time.h> 中。
直接由 rand 函数生成的值总是在 0 ≤ rand() ≤ RAND_MAX 范围内。例如,下面的语句模拟了掷一个六面骰子的过程:
face = 1 + rand() % 6;
这个语句会随机为变量 face 赋一个1到6之间的整数值。该范围的宽度(即该范围内连续整数的数量)是6,范围的起始数是1。我们可以将这个结果推广为:
n = a + rand() % b;
其中, a 是偏移值(等于所需连续整数范围中的第一个数), b
超级会员免费看
订阅专栏 解锁全文
1597

被折叠的 条评论
为什么被折叠?



