关于rand()

本文介绍了如何使用C语言中的rand函数生成伪随机数,并通过两个示例函数展示如何生成指定数量和范围内的随机数。文章还解释了如何利用srand函数结合当前时间设置随机数种子以确保每次程序运行产生的随机数不同。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

rand是CRT函数,功能是输出一个伪随机数,最大不超过RAND_MAX。下面是一个简单的示例:

/* a demo of rand
 * date: 2011-12-05
 * created: ume
 * remarks:
 *	注意输出格式
 */
#include<iostream>
#include<iomanip>
#include<time.h>
using namespace std;
// functions
void SimpleRand(int n)
{
	for(int i = 0; i < n; ++i)
	{
		cout<<setw(6)<<rand()<<endl;
	}
}
void RangedRand(int min, int max, int n)
{
	for(int i = 0; i < n; ++i)
	{
		cout<<setiosflags(ios_base::fixed)<<setw(6)<<setprecision(2)<<((double)rand()/(RAND_MAX + 1)*(max - min) + min)<<endl;
	}
}
// main function
void main()
{
	srand((unsigned int)time(NULL));
	SimpleRand(10);
	cout<<endl;
	RangedRand(-50, 50, 10);
	system("pause");
	return;
}

我们定义了两个函数SimpleRand()和RangedRand(),参数n表示产生随机数的数量,min和max表示随机数的大小范围。主函数在调用它们之前,调用了srand()来设置随机数发生器的初始状态。如果不设置或设置为某个固定的整数,程序每次运行的结果都一样。在示例中,我们使用了CRT函数time()获取本机的时间,它的返回值是距离1970年元旦凌晨流逝的秒数。程序每一次运行,获得的秒数都不一样,这就保证了每次输出都不相同。此外,在SimpleRand()和RangedRand()函数中我们对输出格式进行了控制,setw(6)表示输出长度是6位,setiosflags(ios_base::fixed)表示小数位长度固定,它与setprecision(2)共同起作用,使输出的小数的小数位总为2。运行示例程序,其结果如下所示:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值