C++ 产生随机数 (Dev开发环境)
2018-01-22 13:21
337 查看
以前写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
;
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("%d\n",arr[i]);
}
return 0;
}
今天主要说一下我在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
;
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("%d\n",arr[i]);
}
return 0;
}
相关文章推荐
- 在Dev-C++上搭建Winpcap的开发环境
- dev-c++/Mingw32环境解绍之---自已开发静态链接库
- 如何Dev-Cpp 环境下进行C++开发的介绍
- Dev-C++ 配置SDL开发环境
- 开发环境(mingw,gtk2.0,sdl,dev-c++)
- 基于windows平台,dev-c++编译工具,搭建ffmpeg 开发环境
- Android JNI编程(一)——JNI概念以及C语言Dev-C++开发环境搭建、编写HelloWorld
- Dev-C++ & MinGW & wxWindows2.6.2 开发环境的配置
- Dev-C++ 配置 GTK+ 的开发环境
- Android JNI编程(一)——JNI概念以及C语言Dev-C++开发环境搭建、编写HelloWorld
- 使用C++如何产生32位随机数
- LINUX 下eclipse开发c++环境
- C/C++代码静态检查工具Cppcheck在VS2008开发环境中的安装配置和使用
- Linux上搭建C/C++IDE开发环境1
- ecplise c/c++开发环境搭建
- Windows 下Eclipse的C++开发环境配置
- Ubuntu12.04下安装eclipse C/C++开发环境
- Windows下用Eclipse搭建C/C++开发环境
- 基于Carbide.c++搭建Symbian开发环境
- C++产生随机数示例