关于rand()与srand()的介绍与应用

1.rand()函数

描述:C 库函数 int rand(void) 返回一个范围在 0 到 RAND_MAX 之间的伪随机数。RAND_MAX 是一个常量,它的默认值在不同的实现中会有所不同,但是值至少是 32767。

rand()函数是存在于<stdlib.h>库函数中,在使用前一定记得将其包含进去。rand()函数是生成一个随机数的函数,实际上,rand () 函数产生的随机数是伪随机数,是根据一个数值按照某个公式推算出来的,这个数值我们称之为“种子”。 种子和随机数之间的关系是一种正态分布,种子在每次启动计算机时是随机的,但是一旦计算机启动以后它就不再变化了;所以根据公式推算出来的结果(也就是生成的随机数)就是固定的。

可以看到,每次编译运行的的随机数都相同,因为电脑启动以后,种子就已经生成,不会再更新,想要更新种子,就可以使用srand()函数产生随机种子。

2.srand()函数

描述:C 库函数 void srand(unsigned int seed) 播种由函数 rand 使用的随机数发生器,不返回任何值。

参数:seed -- 这是一个整型值,用于伪随机数生成算法播种。

简单来说里面的参数不一样,得到的种子就不一样。那只要将里面的参数给成一个随机的值,就可以保证种子的随机性了,之后的rand()函数的也会因为种子的改变而产生随机数。那srand()中就可以给time(NULL),这个函数返回的值是每次程序运行的时间,也就是一个随机值,time()函数包含在<time.h>头文件中,那么这样就可以实现得到一个随机值的功能了。

下面是一个简单的应用(和电脑玩石头剪刀布):

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{	//0=拳头,1=剪刀,2=布
	int p_select,u_select;//定义了代表pc和user的变量
	srand(time(NULL));
	p_select = rand() % 3;//对随即数取余,可以得到0,1,2随机的一个值
    printf("请输入一个数字(0=拳头,1=剪刀,2=布)\n");
	scanf("%d",&u_select);
	if(p_select == 0){
		if(u_select == 0){
			printf("平局\n");
		}else if(u_select == 1){
			printf("pc赢\n");
		}else{
			printf("user赢\n");
		}
	}
	if(p_select == 1){
		if(u_select == 0){
			printf("user赢\n");
		}else if(u_select == 1){
			printf("平局\n");
		}else{
			printf("pc赢\n");
		}
	}
	if(p_select == 2){
		if(u_select == 0){
			printf("pc赢\n");
		}else if(u_select == 1){
			printf("user赢\n");
		}else{
			printf("平局\n");
		}
	}
	return 0;
}

运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值