我是靠谱客的博主 深情招牌,最近开发中收集的这篇文章主要介绍C++实现随机数生成C++实现随机数生成,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

C++实现随机数生成

文章目录

  • C++实现随机数生成
    • 1. 包含文件
    • 2. 相关函数
    • 3. 示例代码

1. 包含文件

实现随机数需要<cstdlib>
实现随机数种子需要<ctime>,即利用系统时间生成随机数种子
其他文件:
实现输入输出流,需要<iostream>
实现格式化输出,需要<iomanip>

2. 相关函数

rand()函数:生成一个伪随机数
srand((int)time(NULL))srand((int)time(0)):利用系统时间生成随机数种子
生成[a,b)范围的随机数:(rand()%(b-a))+a
生成[a,b]范围的随机数:(rand()%(b-a+1))+a
生成(a,b]范围的随机数:(rand()%(b-a))+a+1
生成0-1范围的浮点数:rand()/double(RAND_MAX)

RAND_MAX是一个大数,一般是0x7fff

3. 示例代码

#include <iostream>
#include <cstdlib>
#include <iomanip>
#include <ctime>

using namespace std;

void test1()
{
	cout << "生成[0, 100)的随机数(伪随机数):" << endl;
	for (int i = 0; i < 10; i++)
	{
		cout << rand() % 100 << " ";
	}
	cout << endl;
}

void test2()
{
	cout << "生成[0, 100)的随机数(利用系统时间生成随机数种子):" << endl;
	srand((int)time(NULL));
	for (int i = 0; i < 10; i++)
	{
		cout << rand() % 100 << " ";
	}
	cout << endl;
}

#define random1(x) rand()%(x)
void test3()
{
	cout << "生成[0, 100)的随机数:" << endl;
	srand((int)time(NULL));
	for (int i = 0; i < 10; i++)
	{
		cout << random1(100) << " ";
	}
	cout << endl;
}

#define random2(a,b) (rand()%(b-a)) + a
void test4()
{
	cout << "生成[a, b)的随机数: a = 5, b = 10" << endl;
	srand((int)time(NULL));
	for (int i = 0; i < 10; i++)
	{
		cout << random2(5, 10) << " ";
	}
	cout << endl;
}

#define random3(a,b) (rand()%(b-a+1)) + a
void test5()
{
	cout << "生成[a, b]的随机数: a = 5, b = 10" << endl;
	srand((int)time(NULL));
	for (int i = 0; i < 10; i++)
	{
		cout << random3(5, 10) << " ";
	}
	cout << endl;
}

#define random4(a,b) (rand()%(b-a)) + a + 1
void test6()
{
	cout << "生成(a, b]的随机数: a = 5, b = 10" << endl;
	srand((int)time(NULL));
	for (int i = 0; i < 10; i++)
	{
		cout << random4(5, 10) << " ";
	}
	cout << endl;
}

#define random5() (rand() / double(RAND_MAX))
void test7()
{
	cout << "生成0~1的随机浮点数:(保留四位小数)" << endl;
	srand((int)time(NULL));
	for (int i = 0; i < 10; i++)
	{
		cout << setiosflags(ios::fixed) << setprecision(4)<< random5() << " ";
	}
	cout << endl;
}


int main(int argc, char** argv)
{
	test1();
	test2();
	test3();
	test4();
	test5();
	test6();
	test7();
	system("pause");
}

最后

以上就是深情招牌为你收集整理的C++实现随机数生成C++实现随机数生成的全部内容,希望文章能够帮你解决C++实现随机数生成C++实现随机数生成所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部