方法一:

  使用 rand 函数可以获取,如下。

  

  随机数大小是在0到RAND_MAX,值为2147483647,它是在stdlib中定义的,如果我们希望在某个范围内,可以使用 % 结合 / 来实现

  但是不难发现,这里获得的随机数是唯一确定的,而不是变化的。所以,如果我们希望获得变化的随机数,可以使用下面的方法。

方法二:

  既然使用rand函数无法获取到变化的随机数,这里就可以使用srand来实现了。

#include<iostream>
#include<ctime>
using namespace std;
int main()
{
srand(time());
for (int i = ; i < ; i++)
cout << rand() << endl;
return ;
}

  这里,我们需要引入ctime库,其中time(0)是获取从1970年开始的时间(单位:s),然后再获取rand(),这时的rand就是随机变化得了。 如下:

 但这里获取的值是不确定的,而如果我们希望获得在某一范围内的值呢,也很简单,如下所示:

#include<iostream>
#include<ctime>
using namespace std;
int main()
{
srand(time());
for (int i = ; i < ; i++)
cout << rand() % << endl;
return ;
}

如上,使用求余数的方法,我们可以获得0 - 100之间的值。

而如果我们希望得到0 -  1之间的数呢? 如下所示:

#include<iostream>
#include<ctime>
using namespace std;
int main()
{
srand(time());
for (int i = ; i < ; i++)
cout << (rand() % ) * 0.1 << endl;
return ;
}

而我们希望得到-1 到 1 之间的数呢?

#include<iostream>
#include<ctime>
using namespace std;
int main()
{
srand(time());
for (int i = ; i < ; i++)
if (i % == )
cout << (rand() % ) * 0.1 << endl;
else
cout << (rand() % ) * -0.1 << endl;
return ;
}

上面的程序虽然可以得到正随机数和负随机数,但是是交替出现的,还是不够随机,所以我们可以采用下面的方式:

#include<iostream>
#include<ctime>
using namespace std;
int main()
{
srand(time());
double a;
for (int i = ; i < ; i++)
if (rand() % > 0.4)
{
cout << (rand() % ) * 0.1 << endl;
}
else
{
a = (rand() % ) * -0.1;
if (a == -0.0)
{
cout << << endl;
}
else
{
cout << a << endl;
}
}
return ;
}

这样,我们就可以得到真正的随机数了,后面使用 a == -0.0 判断是为了防止输出 -0 的情况。 最终结果如下:

c++获取随机数的更多相关文章

  1. MySQL获取随机数

    如何通过MySQL在某个数据区间获取随机数? MySQL本身提供一个叫rand的函数,返回的v范围为0 <= v < 1.0. 介绍此函数的MySQL文档也介绍道,可以通过此计算公式FLO ...

  2. js获取随机数

    js 获取随机数方法如下: 1.Math.random()表示 结果为0-1间的一个随机数(包括0,不包括1) : 返回指定范围的随机数(m-n之间)的公式 Math.random()*(n-m)+m ...

  3. Cocos2d-x获取随机数

    计算机是无法产生真正的随机数的,都是伪随机.获取随机数的方式和算法多种多样,这里只给出一种方法,基于最新的C++11. 1 2 3 4 5 #include <random> std::u ...

  4. Java获取随机数的几种方法

    Java获取随机数的几种方法 .使用org.apache.commons.lang.RandomStringUtils.randomAlphanumeric()取数字字母随机10位; //取得一个3位 ...

  5. sql 指定范围 获取随机数

    DECLARE @nMinimumCount INT= 1DECLARE @nMaximumCount INT= 100SELECT abs(CHECKSUM(NEWID()))%(@nMaximum ...

  6. javascript 获取随机数

    javascript 获取随机数 var rand=Math.floor(Math.random()*(n+1)) floor 向下取整 random 获得0-1之间的随机数

  7. js 获取随机数 Math.random()

    js 获取随机数 Math.random() // 结果为0-1间的一个随机数(包括0,不包括1) var randomNum1 = Math.random(); //console.log(rand ...

  8. php 获取随机数的几个方式

    php 获取随机数的几个方式 1.直接获取从min-max的数,例如1-20:$randnum = mt_rand(1, 20); 2.在一个数组里面随机选择一个(验证码的时候需要字母.数字混合的情况 ...

  9. PHP获取随机数的函数rand()和mt_rand()

    rand()函数用户获取随机数,具体用法如下: rand()可以设置0个参数或者两个参数,如rand($min,$max),$min表示从XX开始取值,$max表示最大只能为XX 例如: <?p ...

  10. Java基础 - 获取随机数

    使用方法 package com.demo5; import java.util.Random; /* * 使用步骤: * A:导包 * import java.util.Random; * B:创建 ...

随机推荐

  1. C++STL 算法

    算法部分主要由头文件<algorithm>,<numeric>和<functional>组成. <algorithm>是所有STL头文件中最大的一个,其 ...

  2. js 匿名函数 用法

    JS执行顺序为从上到下 先声明存储匿名函数的变量放在JS文件中 <script src="/Scripts/niming.js" type="text/javasc ...

  3. 20171126--handlerThread

    1.首先看下handlerThread和普通的线程Thread的使用区别: HandlerThread本质上就是一个普通Thread,只不过内部建立了Looper. 为线程创建Looper的方法如下: ...

  4. Visual Studio 2017快捷键

    作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7048639.html Visual Studio 2017快捷键 Ctrl+ ...

  5. Java类、超类、包

    定义和实例化与C#相同   特殊变量     super当前对象的父类,用于调用父类的变量和方法     this当前类对象                存取限制有3个     没有C#的inter ...

  6. _编程语言_C_C++_数据结构_struct

    Struct 语句,访问成员使用 点结构. Example: #include <iostream> #include <cstring> using namespace st ...

  7. POJ3111 K Best 2017-05-11 18:12 31人阅读 评论(0) 收藏

    K Best Time Limit: 8000MS   Memory Limit: 65536K Total Submissions: 10261   Accepted: 2644 Case Time ...

  8. nodejs 负载均衡

    教程:http://taobaofed.org/blog/2015/11/03/nodejs-cluster/ 纠正:net.createServerHandle(); 记录:http://www.j ...

  9. DXP快捷键记录(红色为经常用到的)

    dxp快捷键 1.设计浏览器快捷键:鼠标左击                         选择鼠标位置的文档鼠标双击                         编辑鼠标位置的文档鼠标右击   ...

  10. 解决.net+steeltoe服务客户端被服务调用出现400BadRequst错误

    一直尝试用steeltoe的官方示例被调用,一直报400BadRequst错误,换用Java写了一个简单client服务,却能正常被调用. 百思不得其解,用了一晚上填坑,开始觉得是不是IP没绑定,服务 ...