我是靠谱客的博主 单身老鼠,最近开发中收集的这篇文章主要介绍C++ 产生随机数 (Dev开发环境),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 以前写C++代码直接使用Clion ,最近因为比赛,所以换成了Dev-C++,突然发现一些以前写过代码,在Dev-C++报错。

今天主要说一下我在Dev开发环境下,写C++产生随机数的代码。

 1. 首先需要使用的库

#include<stdlib.h>
#include<ctime>

主要使用里面的srand、rand、time 三个函数

1.1srand函数

它需要提供一个种子,这个种子会对应一个随机数,如果使用相同的种子,后面使用rand函数产生的随机数

都是一样的,为了防止随机数每次重复,我们常常使用系统时间来初始化,即使用ctime库中的time函数来获得

系统时间,它的返回值为从00:00:00 GMT,January 1,1970到现在所持续的秒数,将值传给srand函数

我们通常使用srand(time(NULL))

1.2 rand函数

产生一个伪随机数(本质上是根据srand初始的随机数种子),范围为0-RAND_MAX,

直接使用rand()%n获得的是从0~n-1中的任意一个数

比如:使用rand()%10 得到的随机数0~9

同时我们可以通过在后面+z来进行偏移进行求不同范围内的随机数

比如:如果想得到1~10可以通过使用 rand()%10+1, 相当于你得出来的结果+1得出来最低的是0+1=1

,得到最高的是9+1=10

总结一下n代表的是种类,或者是可能性,产生随机数有多少种可能。%10就代表产生的随机数有10种可能

z的作用是进行偏移,提供给你一个基址,z=10就代表你从10开始,最终的范围是z~n+z-1

2. 例子给定一个范围[rangL,rangR] 在此范围生成n个


#include<iostream>
#include<stdlib.h>
#include<ctime>
using namespace std;
int* generateRandomArry(int n, int rangL, int rangR){
	
	int *arr = new int[n];
	srand((unsigned)time(NULL));
	for(int i=0; i<n;i++) {
		arr[i] = rand()%(rangR-rangL+1) +rangL ;
	}
	return arr;
} 
int main() {
	int n = 10;
	int *arr = generateRandomArry(n,10,20);
	for(int i=0; i<n;i++){
		printf("%dn",arr[i]);
	}
	return 0;

}




最后

以上就是单身老鼠为你收集整理的C++ 产生随机数 (Dev开发环境)的全部内容,希望文章能够帮你解决C++ 产生随机数 (Dev开发环境)所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部