C/C++中rand()函数产生随机数的用法
一、rand()
1、rand()不需要参数,它会返回一个从0到最大随机数的任意整数,最大随机数的大小通常是固定的一个大整数。即,rand()会返回一个范围在0到RAND_MAX(32767)之间的伪随机数(整数)。
2、rand()函数需要的头文件是:“stdlib.h”
rand()函数原型:int rand (void);
使用rand()函数产生0-99以内的随机整数:int number = rand() % 100;
3、在调用rand()函数之前,可以使用srand()函数设置随机数种子,如果没有设置随机数种子,rand()函数在调用时,自动设计随机数种子为1。随机种子相同,每次产生的随机数也会相同。
如下: 产生介于 1 到 10 间的随机数值,此范例未设随机数种子
#include<stdio.h>
#include<stdlib.h>
int main()
{ int i,j; for(i=0; i<10; i++) { j=1+(int)(10.0 * rand()/(RAND_MAX+1.0));//or j = 1+(int)(rand()%10) printf("%d ",j); }
}
//输出
3 4 8 7 10 2 4 8 9 6
3 4 8 7 10 2 4 8 9 6 //再次执行仍然产生相同的随机数
二、srand()
1、srand()函数需要的头文件仍然是:”stdlib.h”
srand()函数原型:void srand (usigned int seed);
2、通常rand()产生的随机数在每次运行的时候都是与上一次相同的,这样是为了便于程序的调试。若要产生每次不同的随机数,则可以使用srand( seed )函数进行产生随机化种子,随着seed的不同,就能够产生不同的随机数。
3、还可以包含”time.h”头文件,然后使用srand(time(0))来使用当前时间使随机数发生器随机化,这样就可以保证每两次运行时可以得到不同的随机数序列,同时这要求程序的两次运行的间隔超过1秒。
如下:产生介于 1 到 10 间的随机数值,此范例与执行结果可与 rand()进行对比
#include<time.h>
#include<stdio.h>
#include<stdlib.h>
int main()
{ int i,j; srand((int)time(0)); for(i=0; i<10; i++) { j = 1+(int)(rand()%10); printf(" %d ",j); }
}
8 4 5 3 6 2 3 5 9 8
7 3 6 7 2 2 4 8 6 5//再次执行产生不同的随机数
三、产生指定范围内的随机整数的方法
1、采用“模除+加法”的方法
总的来说,可以表示为:int num = rand() % n +a;
其中的a是起始值,n-1+a是终止值,n是整数的范围。
2、如果要产生1~100,则是这样:int num = rand() % 100 + 1;
3、一般性:rand() % (b-a+1)+ a ; 就表示 a~b 之间的一个随机整数。
(由于rand() % (b-a+1) 表示0~b-a之间的整数)
4、若要产生0~1之间的小数,则可以先取得0~10的整数,然后均除以10即可得到“随机到十分位”的10个随机小数。
若要得到“随机到百分位”的随机小数,则需要先得到0~100的10个整数,然后均除以100,其它情况依 此类推。
C/C++中rand()函数产生随机数的用法相关推荐
- C语言中使用rand()函数产生随机数用法
srand和rand函数的用法 参考链接:关于 time() 函数 关于 rand() 函数 需要的头文件是<stdlib.h> rand()函数说明:产生一个范围在0~RAND_MAX之 ...
- c++ stdlib中rand()函数的值范围
范围是0~32767. 库函数中系统提供了两个函数用于产生随机数:srand()和rand(). 原型为: 函数一:int rand(void): 返回一个[0,RAND_MAX]间的随机整数. 函数 ...
- C++中rand()函数的用法
C++中rand() 函数的用法 1.rand()不需要参数,它会返回一个从0到最大随机数的任意整数,最大随机数的大小通常是固定的一个大整数. 2.如果你要产生0~99这100个整数中的一个随机整数, ...
- C语言rand()函数产生随机数详解
C语言rand函数产生随机数详解 1.rand函数的原型,功能和界限 2.用rand函数获取随机数 3.随机数生成原理 1.rand函数的原型,功能和界限 rand函数的原型: #include &l ...
- pythonlower函数_python中lower函数实现方法及用法讲解
之前小编介绍过python中将字符串小写字符转为大写的upper函数的使用方法(upper函数).有将小写转为大写的需要,那也有将大写转为小写的情况.本文主要介绍在python中可以将字符串大写自摸转 ...
- Python pandas 中loc函数的意思及用法,及跟iloc的区别
Python pandas 中loc函数的意思及用法,及跟iloc的区别 loc和iloc的意思 loc和iloc的区别及用法展示 参考文献 loc和iloc的意思 首先,loc是location的意 ...
- rand()函数100000随机数_利用随机函数Rand、Randbetween制作抽奖器应用技巧解读
在Excel系统中,随机数函数有两个,分别为Rand和Randbetween,其作用也是不相同的,Rank函数的作用为生成0-1之间的随机数,而Randbetween函数的作用为生成指定范围内的随机数 ...
- rand()函数100000随机数_Excel之数学函数SQRT/MOD/EXP/LN/RAND
本部分主要包括ABS函数.SQRT函数.SIGN函数.MOD函数.POWER.EXP函数.LN函数.LOG函数.LOG10函数.RAND函数.RANDBETWEEN函数.PI函数.SIN函数.COS函 ...
- rand()函数100000随机数_随机函数Rand、Randbetween应用技巧解读
在Excel系统中,随机数函数有两个,分别为Rand和Randbetween,其作用也是不相同的,Rank函数的作用为生成0-1之间的随机数,而Randbetween函数的作用为生成指定范围内的随机数 ...
最新文章
- 算法---------前 K 个高频元素(Java版本)
- 中国最新奥数竞赛成绩出炉:南师大附中女生严彬玮满分夺冠!60人国家集训队名单公布...
- jquery之ajax——全局事件引用方式以及各个事件(全局/局部)执行顺序
- itext库产生word文档示例(.doc)
- python多线程 不在main_Python多线程
- Python函数(2)
- java编程连接mysql_Java编程学习之JDBC连接MySQL
- 汉拓中国CRM评估报告简介
- 第十一章:Java_多线程
- 读中文_挑战来了!康辉喊你读中文十级绕口令!
- java jdbc(mysql)驱动源码分析_JAVA JDBC(MySQL)驱动源码分析(二)
- python extract的使用_Python extract及contains方法代码实例
- bash mysql 循环输出_Bash实用技巧:同时循环两个列表
- Ubuntu系统下ntp服务器搭建2
- python 六剑客(匿名函数和内建函数)
- Postgres invalid command \N数据恢复处理
- 《Oracle从入门到精通》
- 计算机实训实验报告,审计实务实验报告总结审计实训实验报告计算机审计实验总结...
- 网络中的海底隧道——MPLS
- 服务器机箱销售跑哪些地方,网购主机老出问题?其实你早已上当受骗,这些猫腻很多人都不知道...
热门文章
- centos7上配置Samba服务器完成与windows的文件共享
- 操作系统难点解析之进程和线程
- centos6.6安装hadoop-2.5.0(四、hadoop HA安装)
- linux远程登录ssh免密码
- Exchange企业实战技巧(27)邮件中使用数字签名和邮件加密功能
- Oracle:集群因子
- MyEclipse导入jquery-1.8.0.min.js等文件报错的解决方案
- Windows 2000本地路由表
- LINQ 中的 select
- JavaScript更改class和id的方法