打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
01、随机数的生成1

VS2019生成随机数的方法:

1、包含 <ctime> 可以获取系统时间。

2、使用 srand((unsigned int )time(NULL)) 设置随机数种子。

3、用 rand() 生成 [0,RAND_MAX] 的随机整数。

4、RAND_MAX=32767

5、用 rand() %size+a 生成 [a,size+a] 区间的随机整数

6、生成[0, 1]浮点随机数:1.0*rand()/RAND_MAX

7、生成任意区间内的浮点随机数:(区间大小为size,区间起始位置为a,

该区间可比上面非浮点的区间更大,不受RAND_MAX限制)

1.0*rand()/RAND_MAX*size + a

8、若要生成右端点比RAND_MAX更大的整数随机数:

(long long)(1.0*rand()/RAND_MAX*size + a)



以下是一个完整的例子:

#include <iostream>

#include <ctime>

using namespace std;

int randnumber(int min,int max)

{

int sizeint=0,a=0;

a = min;

sizeint = max - min+1;

int randnum;

srand((unsigned int)time(NULL)); //设置随机数种子。

randnum = rand() % sizeint + a; //生成随机数,范围是 [a,a+size] 生成的随机数类型为 int。

return randnum;

}

double randnumber(double min,double max)

{

double sizedouble = 0,a = 0;

a = min;

sizedouble = max - min ;

double randnum;

srand((unsigned int)time(NULL)); //设置随机数种子。

randnum = 1.0*rand()/RAND_MAX*sizedouble + a; //生成随机数,范围是 [a,a+size] 生成的随机数类型为double.

return randnum;

}

long long randnumber(long long min,long long max)

{

long long sizelong = 0,a = 0;

a = min;

sizelong = max - min + 1;

long long randnum;

srand((unsigned int)time(NULL)); //设置随机数种子。

randnum =(long long)(1.0 * rand() / RAND_MAX*sizelong+a); //生成比RAND_MAX还大的随机数,范围是 [a,a+size],生成的随机数类型为 long long。

return randnum;

}

int main()

{

int numint1 = 0, numint2 = 0;

double num0_1 = 0, numdouble = 0;

long long numlong=0;

cout << "RAND_MAX = " << RAND_MAX << endl;

numint1=randnumber(3,7);

cout << "生成1个[3,7]之间的随机整数。" << endl; //生成[3,7]之间的随机数(区间大小为5)

cout << numint1 << endl;

numint2=randnumber(1, 100); //生成[1,100]之间的随机数(区间大小为100)

cout << "生成1个[1,100]之间的随机整数。" << endl;

cout << numint2 << endl;

num0_1=randnumber(0.0,1.0); //生成[0,1]之间的随机数,类型为double。

cout << "生成1个[0,1]之间的随机整数。" << endl;

cout << num0_1 << endl;

numdouble=randnumber(2.35, 9.77); //生成[2.35,9.77]之间的随机数,类型为double。

cout << "生成1个[2.35,9.77]之间的随机整数。" << endl;

cout << numdouble << endl;

numlong=randnumber(1L,100000000L); //生成[1,100000000]之间的随机数(区间大小为10000000)

cout << "生成1个[1,100000000]之间的随机整数。" << endl;

cout << numlong << endl;

system("pause");

return 0;

}

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
C,C++随机数产生
Arduino如何产生随机数
模拟对战cpp 中不了解的点
蒙特卡罗方法求积分
随机数生成算法调查和思考
c的随机数函数rand
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服