如何正确地生成一个随机数
参考文章
笔记 | 如何正确地生成一个随机数
CF曾提到:Don’t use rand(): a guide to random number generators in C++
文章总结:
1 .rand()的随机范围太小了,在某些平台下(例如 Windows)RAND_MAX 只有 32768。如果需要的范围大于 32768,那么指定 min 和 max 参数就可以生成大于 RAND_MAX 的数了,或者考虑用 mt_rand() 来替代它。
2. random_shuffle(打乱数组顺序)
3. rand()使用的伪随机算法是 linear congruential generator (线性同余发生器),在低位循环节很低
rand()不行那咋办?文章中给了东西:mt19937(范围:无限制,可以自己设定),mt19937是c++11中加入的新特性,具有速度快,周期长的特点
无范围:
使用方法:
#include<random>
#include<ctime>
std::mt19937 rnd(time(0));
int main()
{printf("%lld\n",rnd());return 0;
}
C++无范围限制
#include <iostream>
#include <chrono>
#include <random>
using namespace std;
int main()
{// 随机数种子unsigned seed = std::chrono::system_clock::now().time_since_epoch().count();mt19937 rand_num(seed); // 大随机数cout << rand_num() << endl;return 0;
}
手动加上范围:
#include <iostream>
#include <chrono>
#include <random>
using namespace std;
int main()
{// 随机数种子unsigned seed = std::chrono::system_clock::now().time_since_epoch().count();mt19937 rand_num(seed); // 大随机数uniform_int_distribution<long long> dist(0, 1000000000); // 给定范围cout << dist(rand_num) << endl;return 0;
}
如何正确地生成一个随机数相关推荐
- 用C++生成一个随机数
用C++生成一个随机数 文章目录 用C++生成一个随机数 C++语言生成随机数的办法 通用公式 : 例 (例中的随机数生成公式为通用公式) C++语言生成随机数的办法 1.使用rand()函数返回从[ ...
- 猜数字游戏随机生成一个随机数,并给玩家三次机会猜测
"""猜数字游戏随机生成一个随机数,并给玩家三次机会猜测""" import random #import的作用是导入random这个伪造随 ...
- python生成10个随机数并排序_生成一个随机数的列表,然后对它们进行排序
首先,我想向您展示完整的代码,稍后我将发表评论:import random def randomNum(): return random.sample(range(1, 100), 5) number ...
- html中写随机数,为HTML生成一个随机数
你的问题是相当含糊,你需要什么,但这里是产生两个变量之间的随机数,然后一个Javascript的解决方案设置一个 内容是: JS: var link = document.getElementById ...
- 随机数公式生成一个负数和正数之间的数_怎么把一个数随机正负
1.如何生成一个数的二分之一的随机数,范围在正负0.3,如20的二分之 你可以进入如图所示网站,在右边那个框框中输入-30000,30000(不支持小数),然后点击下面的按钮生成一个随机数,将它除以1 ...
- python生成一个含有20个随机数的列表_python随机模块22个函数详解(上)
作者:小伍哥 来源: AI入门学习 今天给大家纤细介绍下python中的随机模块,随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性.平时数据分析各种分 ...
- 算法:关于生成抽样随机数的这些算法
概述: 这里你是不是会说,生成随机数有什么难的?不就是直接使用Java封装好了的random就行了么?当然对于一般情况下是OK的,而且本文要说明的这些算法也是基于这个random库函数的. 本文主要是 ...
- 随机抽样java_java生成抽样随机数的多种算法
本章先讲解Java随机数的几种产生方式,然后通过示例对其进行演示. 概述: 这里你是不是会说,生成随机数有什么难的?不就是直接使用Java封装好了的random就行了么?当然对于一般情况下是OK的,而 ...
- 竟然被awk生成的随机数给整蒙了,也谈随机数生成种子
我们现在主要的一个业务是给科研单位等提供数据库构建服务,目前承接的数据库已经发表了3篇NAR文章,具体见你的数据也可以-三篇NAR的数据库. 这次一位老师需要做数据库,但数据还没做好,时间要求却比较急 ...
最新文章
- 7系列FPGA逻辑单元理解
- keras fine-tune方法
- 双向循环链表的冒泡排序
- 原理图元件有波浪线_电气原理图和接线图识图方法,电气接线图怎么画?
- 各种模板(数据结构图论)
- java 异常 理解_java异常理解(1)
- 财经计算机财务函数,会计财务最常用的15个公式函数
- ExtJs:收集基于ExtJs扩展的一些控件。
- poj 1050(DP)
- 刷屏!边学边用,这个学Python方法彻底火了!
- redis string底层数据结构
- linux 清空session,webwork 之销毁session
- Windows的资源监视器
- xmind 拖拽_GitHub - xdsnet/jsxMind: 基于jsmind 改写的jsxmind插件
- latex 表格居中
- 本科生学习的一些心得
- hive中的TextFile转为SequenceFile
- 计算机表格常用根式,常用平方根表.doc
- STM32常用协议之串口通信详解
- java日志保存_log4j实现日志集中存储
热门文章
- 历史上最怪异的23种飞行器,设计者脑子里都想什么了
- python运算符号输入_【Python】【运算符】
- vgh电压高了有什么_智能变频电源的功能是什么?
- html超文本链接本页面,从HTML语言到网上家园 第三章 超文本链接(1)-网页设计,HTML/CSS...
- php server 连接字符串,sqlServer 数据库常用连接字符串
- java关于异常的面试程序题_Java挑战:最难的十个面试题(附答案)「下」
- java 生成jar_java如何生成jar
- 蜗杆参数法设计_技术贴 | 减速器结构及设计的注意事项
- 跨部门不配合工作_跨部门协作,队友总是“甩锅”,这三个方法教你快速避坑!...
- linux开发板显示横向彩虹,给 Linux 终端的输出添加彩虹特效的命令