c++中的随机数rand()
rand()使用
rand()不需要参数,它会返回一个从0到最大随机数(RAND_MAX)的任意整数,最大随机数的大小通常是固定的一个大整数,一般为0x7fff;rand()范围是[0,RAND_MAX]
1、表示 a~b 之间的一个随机整数,rand() % (b-a+1)+ a ;
rand() % (b-a+1)所得余数只可能在[0, b-a+1]
要产生0~99这100个整数中的一个随机整数,可以表达为:int num = rand() % 100;
要产生1~100,则是这样:int num = rand() % 100 + 1;
可以表示为:int num = rand() % n +a; 其中的a是起始值,n-1+a是终止值,n是整数的范围。
2、若要产生01之间的小数,则可以先取得010的整数,然后均除以10即可得到“随机到十分位”的10个随机小数。
若要得到“随机到百分位”的随机小数,则需要先得到0~100的10个整数,然后均除以100,其它情况依 此类推。
3、通常rand()产生的随机数在每次运行的时候都是与上一次相同的,这样是为了便于程序的调试。
若要产生每次不同的随机数,则可以使用srand( seed )函数进行产生随机化种子,随着seed的不同,就能够产生 不同的随机数。
4、生成浮点数随机数,a b为整数或浮点数
rand() * 1.0/RAND_MAX,除法的结果只可能在[0, 1],因为rand()最大才为RAND_MAX。
[0,1]—rand() * 1.0/RAND_MAX
[a,b]—rand() * 1.0/RAND_MAX * (b-a) + a
[a,b)—rand() * 1.0/(RAND_MAX+1) * (b-a) + a
(a,b]—(rand()+1)* 1.0/(RAND_MAX+1) * (b-a) + a
(a,b)—(rand()+1) * 1.0/(RAND_MAX+2) *(b-a) + a
#include <iostream>
#include <ctime>
using namespace std;
#include <ctime>
int main()
{
//添加随机数种子,作用:利用当前系统时间生成随机数,防止每次随机数一样
srand((unsigned int)time(NULL));
int num = rand() % 100 + 1;//生成0~99+1的随机数
cout << num << endl;
system("pause");
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
2020-10-10 LQR (线性二次型调节器)的直观推导及简单应用