程序中开发常用的随机数的产生探讨

[复制链接]
1392|13
 楼主| chuntian2016 发表于 2017-4-29 10:48 | 显示全部楼层 |阅读模式
这个在程序中,是经常看到的,程序的随机数的能解决很多的问题的,不过还是需要这些随机水函数是怎样被调用的,,这些现在就做些介绍的
这里说的是rand()函数, srand()函数,和time()函数。需要说明的是,iostream头文件中就有srand函数的定义,不需要再额外引入stdlib.h;而使用time()函数需要引入ctime头文件

 楼主| chuntian2016 发表于 2017-4-29 10:49 | 显示全部楼层
需要说明的是,iostream头文件中就有srand函数的定义,不需要再额外引入stdlib.h;而使用time()函数需要引入ctime头文件。
这一点的还是需要注意的。。
 楼主| chuntian2016 发表于 2017-4-29 11:04 | 显示全部楼层
使用rand()函数获取一个随机数
如果你只要产生随机数而不需要设定范围的话,你只要用rand()就可以了:rand()会返回一随机数值, 范围在0至RAND_MAX 间。RAND_MAX定义在stdlib.h, 其值为2147483647。。
 楼主| chuntian2016 发表于 2017-4-29 11:05 | 显示全部楼层
使用rand()函数获取一定范围内的一个随机数;
如果想要获取在一定范围内的数的话,直接做相应的除法取余即可;
如:
#include<iostream>
using namespace std;
int main()
{
for(int i=0;i<10;i++)
{
  //产生10以内的整数
  cout<<rand()%10<<endl;
}
}

 楼主| chuntian2016 发表于 2017-4-29 11:05 | 显示全部楼层
如何获取小数呢?例如:我们可以先获得10001以内的整数(0~10000),然后再用这个整数除以10000得到小数点后两位的小数。
#include<iostream>
using namespace std;
int main()
{
for(int i=0;i<10;i++)
{
  cout<<(rand()%10001)/10000.0<<endl;
}
}

注意10000.0后面的有个小数点,表示结果为浮点数。
 楼主| chuntian2016 发表于 2017-4-29 11:07 | 显示全部楼层
#include<iostream>
#include<ctime>
using namespace std;
int main()
{
srand(time(0));
for(int i=0;i<10;i++)
{
  //产生10以内的整数
  cout<<rand()%10<<endl;
}
}
这个是利用time函数产生每次结果都不一样的随机数。。
vibra2016 发表于 2017-4-29 13:03 | 显示全部楼层
这随机数的介绍非常不错,,我先看看学习的
angerbird 发表于 2017-4-29 16:05 | 显示全部楼层
chuntian2016 发表于 2017-4-29 11:07
#include
#include
using namespace std;

这个措施是非常不错的,,产生的随机数都不一样。。
comeon201208 发表于 2017-4-30 11:11 | 显示全部楼层
随机数的产生与使用是非常普遍
baimiaocun2015 发表于 2017-5-22 22:35 | 显示全部楼层
关于随机数的应用还是要谨慎的
clvert 发表于 2017-5-25 10:10 | 显示全部楼层
貌似只用rand的话产生的随机数具有一定的规律性 不能算作严格的随机数
dalarang 发表于 2017-5-25 12:35 | 显示全部楼层
rand是伪随机数。
comeon201208 发表于 2017-5-28 23:07 | 显示全部楼层
随机函数的使用还是非常关键的。
vibra2016 发表于 2017-5-29 17:51 | 显示全部楼层
随机函数应用正确的话,是可以解决很多应用上的难题的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

1485

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部