C/C++:rand()函数

rand()函数的头文件:#include<stdlib.h>

该函数产生的随机数随机性差,速度慢,周期小(0-32767)

用法如下所示:

 #include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
srand((unsigned int)time());///以系统流逝时间为随机数发生器种子
for(int i=;i<;i++)
{
int n=rand()%(-)+; ///产生25-50间的随机整数,rand%(b-a)+a即产生[a,b)范围内的随机整数
double d=rand()/(double)RAND_MAX; ///产生0-1的随机小数
printf("%d %f\n",n,d);
}
puts("");
printf("rand()函数可产生随机数的范围:0—%d\n",RAND_MAX);
return ;
}

代码运行结果如下:

C++11:mt19937

mt19937的头文件:#include<random>

产生速度快, 周期大(0-4294967295)

用法与上述rand()类似,具体如下所示: 

 #include<random>
#include<time.h>
#include<bits/stdc++.h>
using namespace std;
int main()
{
mt19937 mt_rand(chrono::high_resolution_clock::now().time_since_epoch().count());///随机种子
///或用:mt19937 mt_rand(time(0));
for(int i=;i<;i++)
{
int n=mt_rand()%(-)+; ///产生25-1000间的随机整数
printf("%d\n",n);
}
return ;
}

使用random库进行随机数生成,用法如下所示:

 #include <iostream>
#include <random>
using namespace std; int main()
{
mt19937 rng;
rng.seed(random_device()());//初始化随机种子 uniform_int_distribution<int> int_dist(,);//创建一个均匀分布,等概率(随机)生成[1, 100]区间的整形数字;
uniform_real_distribution<double> real_dist(-, );//创建一个均匀分布,(等概率)随机生成在(-1, 1)之间的小数; for(int i=;i<;i++){
cout << int_dist(rng) << ' ';
cout << real_dist(rng) << endl;
}
return ;
}

运行结果如下:

C++标准库——random

【C/C++】随机数的生成的更多相关文章

  1. JavaScript算法题之–随机数的生成

    JavaScript算法题之–随机数的生成 需求描述:从一组有序的数据中生成一组随机并且不重复的数,类似于简单的抽奖程序的实现. 先来生成一个有序的数组: 1 var arr = [], 2      ...

  2. java随机数的生成

    我们经常会用到随机数的生成,作为唯一性的id或者标识: long now = System.currentTimeMillis(); SimpleDateFormat dateFormat=new S ...

  3. Linux真随机数的生成

    今天看<白帽子讲WEB安全>一书,看到笔者谈到Linux如何实现真随机数生成,感觉非常有用,记录下来 #include<iostream> using namespace st ...

  4. 将从mysql数据库查询的信息,遍历到List<>以及一些随机数的生成

    将从mysql数据库查询的信息,遍历到List<>以及一些随机数的生成. 代码比较乱,但是方法还是对的,大家又需要的选择看,希望对博友 有帮助,欢迎留言分享! public class s ...

  5. Python中随机数的生成

    在Python中要实现随机数的生成,需要使用random模块中randint方法. 其具体实现方法如下: import random a = random.randint(1,20) #(1,20)为 ...

  6. C#产生不重复的随机数并生成随机文件名

    本文转自:http://blog.ciznx.com/post/csharprandomnumberandrandomfilename.aspx 在项目中会遇到需要批量生成文件的时候,比如 asp.n ...

  7. SQL随机数的生成

    下面是一个随机函数问题,获取两位数的随机数,且不重复. 但是说明一下,这个函数有点bug,例如:两位数的函数最后能生成89个,如果将数量改成90,那么就无法生成,陷入死循环了. IF object_i ...

  8. C语言中随机数的生成

    刚好在找这方面的资料,看到了一片不错的,就全文转过来了,省的我以后再找找不到. 在C语言中,可以通过rand函数得到一个“伪随机数”.这个数是一个整数,其值大于等于0且小于等于RAND_MAX.ran ...

  9. java 随机数高效生成

    分享牛,分享牛原创.近期去面试经常被问到java如何生产随机数,以及生成很大的字符串保证不能重复,还要考虑性能,之前本人面试别人的时候,可能不会问这个问题.既然这个java随机数问题经常被问到,那咱们 ...

  10. js生成1-100不重复的随机数及生成10个1-100不重复的随机数

    //生成1-100不重复的随机数 var count=100; var a=new Array(); for(var i=0;i<100;i++){ a[i]=i+1; } a.sort(fun ...

随机推荐

  1. SCUT 125 :笔芯回文(DP)

    https://scut.online/p/125 125. 笔芯回文 题目描述 bxbx有一个长度一个字符串SS,bxbx可以对其进行若干次操作. 每次操作可以删掉一个长度为k(1 \leq k \ ...

  2. RedisDesktopManager远程连接Linux系统的Redis服务

    linux下安装redis :https://www.runoob.com/redis/redis-install.html 进入 src 运行redis   : ./redis-server 打开另 ...

  3. Effective Java第三版(一) ——用静态工厂代替构造器

    此文做为<Effective Java>系列的第一篇,所以有必要大概说下此书的特点,当然很多人可能都看过,毕竟是有着Java四大名著之一的大名在外,不过总会有萌新不了解,例如我!<E ...

  4. 教你用Python制作微信好友背景墙

    目录: 0 引言 1 环境 2 代码实现 3 后记 0 引言 前段时间,微信朋友圈开始出现了一种晒照片新形式,微信好友墙,即在一张大图片中展示出自己的所有微信好友的头像. 效果如下图,出于隐私考虑,这 ...

  5. openstack-neutron基本的网络类型以及分析

    [概述] Neutron是OpenStack中负责提供网络服务的组件,基于软件定义网络的思想,实现了网络虚拟化下的资源管理,即:网络即服务. [功能] ·二层交换 Neutron支持多种虚拟交换机,一 ...

  6. France beat Croatia 4-2 in World Cup final

                     France won the World Cup for the second time by beating Croatia 4-2 in a tremendous ...

  7. Scrapy爬虫框架与常用命令

    07.08自我总结 一.Scrapy爬虫框架 大体框架 2个桥梁 二.常用命令 全局命令 startproject 语法:scrapy startproject <project_name> ...

  8. 下拉选择框,PopupWindow的使用

    实现下拉选择框 直接上代码 Activity.java package com.example.shaofei.customerviewdemo1; import android.os.Bundle; ...

  9. 关于页面scroolTop的获取

    scroolTop 发现问题 获取页面滚动高度的时候: 当html页面设置了DTD<!DOCTYPE html> document.body.scroolTop // 值总是为0: doc ...

  10. Elasticsearch 7.x Nested 嵌套类型查询 | ES 干货

    一.什么是 ES Nested 嵌套 Elasticsearch 有很多数据类型,大致如下: 基本数据类型: string 类型.ES 7.x 中,string 类型会升级为:text 和 keywo ...