打印

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

[复制链接]
1077|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;
}
}

使用特权

评论回复
5
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后面的有个小数点,表示结果为浮点数。

使用特权

评论回复
6
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函数产生每次结果都不一样的随机数。。

使用特权

评论回复
7
vibra2016| | 2017-4-29 13:03 | 只看该作者
这随机数的介绍非常不错,,我先看看学习的

使用特权

评论回复
8
angerbird| | 2017-4-29 16:05 | 只看该作者
chuntian2016 发表于 2017-4-29 11:07
#include
#include
using namespace std;

这个措施是非常不错的,,产生的随机数都不一样。。

使用特权

评论回复
9
comeon201208| | 2017-4-30 11:11 | 只看该作者
随机数的产生与使用是非常普遍

使用特权

评论回复
10
baimiaocun2015| | 2017-5-22 22:35 | 只看该作者
关于随机数的应用还是要谨慎的

使用特权

评论回复
11
clvert| | 2017-5-25 10:10 | 只看该作者
貌似只用rand的话产生的随机数具有一定的规律性 不能算作严格的随机数

使用特权

评论回复
12
dalarang| | 2017-5-25 12:35 | 只看该作者
rand是伪随机数。

使用特权

评论回复
13
comeon201208| | 2017-5-28 23:07 | 只看该作者
随机函数的使用还是非常关键的。

使用特权

评论回复
14
vibra2016| | 2017-5-29 17:51 | 只看该作者
随机函数应用正确的话,是可以解决很多应用上的难题的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

1485

帖子

1

粉丝