为什么80%的码农都做不了架构师?>>>   

在很多时候,程序中会用到随机数,在C++中就要用到专门用以产生随机数的标准库函数rand(),它会产生一个无符号整数,范围在0~32767,即两字节16位的整数最大值。而GNU C++产生的随机数范围为2147483647。 范围中的每一个数在每次随机调用rand时都有相同的概率被选中。

调用时 ,需要引用头文件<cstdlib>,示例代码

//掷20次筛子,每五个一行输出

#include "stdafx.h"

#include <iostream>
using std::cout;
using std::endl;

#include <iomanip>
using std::setw ;

#include <cstdlib>
using std::rand;

int _tmain(int argc, _TCHAR* argv[])
{

for(int i=1;i<=20;i++)
{
cout<<setw(10)<<(1+rand()%6);//比例缩放,6称为缩放因子
if(i%5==0)
{
 cout<<endl;
 
}

}
return 0;
}

当我们多次执行后,我们会发现每次执行的结果是一样的,既然是随机,这是为什么呢???

这是因为,rand()产生的实际上是一个伪随机数,如果要确保每次产生的都不一样,我们需要引用一个专门为rand设置随机化种子的函数srand().示例代码如下:

#include "stdafx.h"
#include <iostream>
using std::cout;
using std::endl;
using std::cin ;
#include <iomanip>
using std::setw ;

#include <cstdlib>
using std::rand;
using std::srand;

int _tmain(int argc, _TCHAR* argv[])
{   
unsigned int seed;
     cout<<"输入随机化种子(它是一个无符号整数)";
cin>>seed;
srand(seed);

for(int i=1;i<=20;i++)

cout<<setw(10)<<(1+rand()%6);//比例缩放,6称为缩放因子
if(i%5==0)
{
 cout<<endl;
 
}

}
return 0;
}
结果1种子为:67

2种子为76

3当再次执行后,种子仍然为76的时候,结果和上次执行的一样:

OK,,,,

转载于:https://my.oschina.net/jixin/blog/119433

C++ 随机函数----谈rand() 和 srand() 体会相关推荐

  1. 随机函数的rand、srand用法

    我们知道rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是 根据一个数,我们可以称它为种了,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布 ...

  2. C++中随机函数rand()和srand()的用法

    一.rand() 函数名:   rand      功   能:   随机数发生器    用   法:   int rand(void); 所在头文件: stdlib.h 函数说明 : rand()的 ...

  3. 【C++】random随机数与【C++11】/rand()和srand()的用法

    文章目录 随机数 1. c++ 11 random随机数的使用(推荐使用) 1.1 1.2 1.3 1.4 2.1 C++中随机函数rand()和srand()的用法(老本版) 2.2 限制随机数的范 ...

  4. rand()和srand()关系很简单——一看就明白(通过一个可移植的源码)

    1 函数rand和srand实现及描述 #include <stdlib.h> //供rand()使用的种子数,初值为1 unsigned long int next = 1; /* * ...

  5. rand和srand

    rand()和srand()函数我们应该接触的比较多了,之前就遇到过,弄懂了,但是现在又忘了.再次遇见写篇文章记录一下. srand()用来设定一个随机数种子,其参数必须是整数,不同的随机数种子使ra ...

  6. 浅谈我的销售体会(一)

    我不知道会写多少,那就写多少算多少吧-- <?xml:namespace prefix = o /> 到今年为止,我好像已经做了9年半的销售了.说长不长,说短也不短,没啥大成绩,就是一点小 ...

  7. C语言之rand()和srand()函数

    1.rand().srand()函数介绍 srand 初始化随机种子,rand 产生随机数 定义函数:int rand(void) 函数功能:产生随机数 函数说明:rand的内部实现是用线性同余法做的 ...

  8. C语言随机数:rand()和srand(time(NULL))的使用

    C语言随机数 rand()简介 srand()简介 使用 rand()简介 使用该函数首先应在开头包含头文件<stdlib.h> #include<stdlib.h> //(C ...

  9. 【C语言】随机数函数rand和srand

    文章目录 一.随机数函数 1.rand().srand() 2.time() 二.案例实现 1.案例描述 2.代码实现 一.随机数函数 1.rand().srand() C语言产生随机数要用到的函数是 ...

最新文章

  1. 2018 区块链技术及应用峰会(BTA)·中国在北京盛大召开
  2. 多模态简述(情感分析)
  3. swiftui动画之tab自定义切换动画_骨骼动画制作|万彩骨骼大师
  4. 基于J2EE的门诊挂号收费系统设计与实现.rar(毕业论文+程序源码+数据库文件)
  5. html实现点击下载文件
  6. jenkins下载插件下载不了,解决办法
  7. IPV6个人使用,实测电脑ping通联通手机
  8. REST Assured 4 - 第一个GET Request
  9. 办理加拿大普通学生签证 20180717
  10. 作文素材:看完这23种蔬菜描写,恨不得穿过屏幕吃掉它们!
  11. 计算机网络笔记(复习)
  12. 你的手帕再也不干净了_我再也不会将手机带回国际航班了。 你也不要
  13. IOS-APP自动化打包上传蒲公英Shell版
  14. deinterlace 隔行 progressive 逐行 3:2pulldown
  15. Android中各种颜色在dawable.xml中的定义
  16. Linux btrfs文件系统
  17. 平板触屏笔什么比较好?平板电脑第三方触控笔推荐
  18. 强大的Java前台后台开发工具
  19. 默然说话20160312
  20. 华硕服务器组件,华硕最新推出一系列服务器及主板解决方案

热门文章

  1. 简化 MongoDB 关联运算
  2. Maven 项目模板
  3. 继承2016/4/19
  4. NSPredicate
  5. 学好Linux必备知识
  6. IntelliLock托管代码保护和许可授权管理系统软件详细介绍及下载
  7. FPA笔记三 数据功能的识别
  8. 咏南LINUX中间件
  9. SQLServer之函数简介
  10. Hibernate QBC 分页