博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ 生成随机数
阅读量:6823 次
发布时间:2019-06-26

本文共 1128 字,大约阅读时间需要 3 分钟。

Rand函数

单纯的rand()会返回一个0至RAND_MAX之间的随机数值,而RAND_MAX的值与int位数有关,最小是32767。不过rand()是一次性的,因为系统默认的随机数种子为1,只要随机数种子不变,其生成的随机数序列就不会改变。

srand函数

srand()可用来设置rand()产生随机数时的随机数种子。通过设置不同的种子,我们可以获取不同的随机数序列。可以利用srand((unsigned int)(time(NULL))的方法,利用系统时钟,产生不同的随机数种子。

 

示例:

1 #include "stdafx.h" 2 #include 
3 #include
4 #include
5 6 #define random(x,y) (((double)rand()/RAND_MAX)*(y-x+1)+x) 7 8 using namespace std; 9 10 int _tmain(int argc, _TCHAR* argv[])11 {12 srand((int)time(NULL));13 14 for (int i = 0; i < 200; i++)15 {16 cout << "num : " << (int)random(0, 10) << endl;17 }18 19 getchar();20 return 0;21 }

 

随机数获取范围的方法 

(double)rand()/RAND_MAX)*(y-x+1)+x)

(0,x)的随机整数:rand()%x 或者 (double)rand()/RAND_MAX)*(x)

(a,b)的随机整数:rand()%(b-a) 或者 (double)rand()/RAND_MAX)*(b-a-1)+a+1

[a,b)的随机整数:rand()%(b-a)+a 或者 (double)rand()/RAND_MAX)*(b-a)+a

[a,b]的随机整数:rand()%(b-a+1)+a 或者 (double)rand()/RAND_MAX)*(b-a+1)+a

(a,b]的随机整数:rand()%(b-a)+a+1 或者 (double)rand()/RAND_MAX)*(b-a)+a+1

0-1之间的浮点数:rand()/double(RAND_MAX)。

转载于:https://www.cnblogs.com/tyche116/p/9400454.html

你可能感兴趣的文章
android 配置framework 使应用首选安装在SD卡
查看>>
h5 点击表单 顶部fixed 菜单栏 上移
查看>>
windows 2008 R2 64位系统杀毒软件
查看>>
我的友情链接
查看>>
netty学习笔记
查看>>
更改win7文件类型默认操作
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
Webgoat 笔记总结 Web Services
查看>>
Linux Mysql安装部署
查看>>
多线程 概述
查看>>
Nagios达到阈值时发不出告警邮件问题总结
查看>>
互联网公司应该要有的技术人员配置和开发事项清单
查看>>
Android开发中如何改变RadioButton背景图片和文字的相对位置
查看>>
如何给Linux (Fedora Ubuntu等)安装字体
查看>>
MySQL大小写敏感问题和命名规范
查看>>
java 获取时间 和 转换时间
查看>>
Redis主从复制
查看>>
mysql-5.6.26 主主复制
查看>>
SpringMVC权限管理
查看>>