1. random函数概述
在C语言中,random函数是一个生成伪随机数的函数。它是标准库
随机数是指在一定范围内,以不可预测的方式产生的数字。在程序开发中,随机数经常用到。比如在游戏中,随机生成敌人的数量和位置;在密码学中,随机数也是很重要的一种安全机制。
接下来我们来看一下random函数的具体用法。
2. random函数用法
2.1 随机数生成
random函数的声明如下:
#include <stdlib.h>
long random(void);
可以看出,random函数不需要传入任何参数,它的返回值是一个long类型的整数。接下来,我们来看一个简单的例子:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
long rand_num;
for(i=0; i<5; i++)
{
rand_num = random();
printf("%ld\n", rand_num);
}
return 0;
}
上面的程序中,我们在循环中生成了5个随机数并输出。具体可以看以下结果:
98312
32650
1861
48714
2078
从结果中可以看出,每次输出的数字都不一样,随机数生成的目的就是要让程序的运行变得更加有趣和充满变化。
2.2 指定随机数范围
有时候,我们需要生成在指定范围内的随机数。为此,我们需要使用一些数学知识。如果我们知道了生成的随机数在一个既定的区间 [a,b] 内,那么我们就可以使用以下公式:
int rand_num = a + (int)((b-a+1)*random()/(RAND_MAX+1.0));
其中,a是所要生成的范围的最小值,b是最大值。
注意,这里使用了类型转换,将生成的浮点数转换成整型,最后得到的结果就是一个整数。
接下来我们来看一个示例:
#include <stdio.h>
#include <stdlib.h>
#define MAX_NUM 10
int main()
{
int i, rand_num;
for(i=0; i
{
rand_num = 1 + (int)(6*random()/(RAND_MAX+1.0));
printf("%d\n", rand_num);
}
return 0;
}
上面的程序中,我们生成了10个1到6之间的随机数。具体可以看以下结果:
4
1
2
3
4
6
3
6
4
5
2.3 srand函数
从上面的示例中可以看出,每次运行程序生成的随机数序列都是不一样的。这是因为每次调用random函数,都会以相同的初始值来计算下一个随机数。所以如果我们希望多次生成相同的随机数序列,就需要使用srand函数来初始化随机数发生器。
srand函数的声明如下:
void srand(unsigned int seed);
它需要传入一个种子值seed,用于初始化随机数发生器。如果每次传入相同的种子值,就会生成相同的随机数序列。以下是一种常见的用法:
#include <stdio.h>
#include <stdlib.h>
#define MAX_NUM 5
int main()
{
int i, rand_num;
/* 初始化随机数种子 */
srand(1000);
for(i=0; i
{
rand_num = 1 + (int)(6*random()/(RAND_MAX+1.0));
printf("%d\n", rand_num);
}
return 0;
}
上面的程序中,我们先用1000作为种子值调用srand函数,然后再生成5个1到6之间的随机数。重复执行几次,可以看到每次输出的随机数序列都是相同的。
3. 总结
本文介绍了C语言中random函数的用法,包括随机数生成、指定随机数范围和srand函数的使用。在实际开发中,我们经常需要使用随机数,比如在游戏、密码学或者随机抽样等方面。random函数是一个非常有用的函数,希望读者通过本文能了解到它的基本用法。