概述
以前写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开发环境)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复