CRandom 类 - MetaTrader 5 库 | MT5 EA下载 - MetaTrader 5资源





MQL 中的标准随机数生成器的可能值数量相当有限,从 0 到 32767(可用 15 位,2^15 =32,768 个值)。
它被归类为线性同余生成器(LCG),被认为是非常基本的随机数生成器。
MQL 的实施数学兰德()可以在这里找到: https://www.mql5.com/en/docs/predefined/_randomseed
该生成器具有易于检测的统计缺陷,无法通过大多数随机性统计测试 实践兰德 测试套件。
因此,MathRand() 不适合大规模蒙特卡罗模拟或高质量随机性至关重要的情况。
PCG 是一个随机数生成器系列,速度快、统计性能好且代码量小。
该类是高质量 32 位 PCG 生成器的包装类。该 RNG 的输出范围为 2^32,这意味着它可以生成4,294,967,296 个可能值。
置换同余生成器 (PCG) 是一种于 2014 年开发的伪随机数生成算法,它应用输出变换(随机移位或旋转)来消除随机数生成中的短周期问题。低位 这是其他 LCG 发电机所面临的问题。它通过小而快速的代码和较小的状态大小实现了出色的统计性能。
该类为随机数生成提供了一个简单的接口。
//+------------------------------------------------------------------+ //| CRandom 类 | //|用途:使用 32 位 PCG 生成器生成随机数。 | //+------------------------------------------------------------------+ 班级随机数 {民众: //--- 构造函数和析构函数 C随机(空白); // 构造函数(自动种子) C随机(常量 乌龙初始化状态,常量 乌龙初始化); // 构造函数(自定义种子) //--- 生成随机数的方法 整数 随机整数(空白); // 随机整数 [0,2147483648) 整数 随机整数(常量 整数最大限度); // 随机整数 [0,max) 整数 随机整数(常量 整数分钟,常量 整数最大限度); // 随机整数 [最小值,最大值) 双倍的 随机双精度(空白); // 随机双精度[0.0,1.0) 双倍的 随机双精度(常量 双倍的最大限度); // 随机双精度[0.0,max) 双倍的 随机双精度(常量 双倍的分钟,常量 双倍的最大限度); // 随机双精度[最小值,最大值) 布尔值 随机布尔值(空白); // 随机真/假(等概率) 布尔值 随机布尔值(常量 双倍的概率真); // 随机真/假(使用 prob_true) 双倍的 随机正态(空白); // 随机双精度(正态分布) 双倍的 随机正态(常量 双倍的亩,常量 双倍的西格玛); // 随机双精度(正态分布) };
该图是针对从 0 到 10 的随机双数获得的
并且,该数字代表从 0 到 10 的随机整数
低阶位的 BITMAP 也显示出随机模式

附件下载
📎 pcg_demo.mq5 (5.96 KB)
📎 pcg_histogram.mq5 (12.24 KB)
📎 pcg_random_bitmap.mq5 (2.69 KB)
📎 mathrand_no_bias.mq5 (5.93 KB)
📎 random.mqh (25.26 KB)
Source: MQL5 #25843
💡 精彩内容推荐
✍️ 楼主最新发布
- •
- •
- •
- •
- •
- •
📌 热门专题入口
- •
- •
- •
- •
- •
- •
- •
- •
🔗 您可能感兴趣
- •
- •
- •
- •
- •
- •
🔐
请登录后参与评论
注册满12小时后评论,即可解锁附件下载
立即登录