工具简介

随机数生成器,可以根据指定的规则,随机生成一组数字。

本工具使用梅森旋转算法(Mersenne Twister)来模拟随机行为,因为真实的随机数是通过物理现象产生的,比如:抛掷钱币、摇骰子、电子元件的噪音、核裂变等等。这样的随机数发生器叫做物理性随机数发生器,本工具是通过一定的算法来达到产生随机数的效果,在计算机领域称为「伪随机」。伪随机数具有随机数的统计特征,因此,在大部分应用场景中,伪随机数即可满足要求。本站还提供了以下随机字符生成工具:随机密码生成器:支持批量生成随机强密码的工具

UUID 生成器:通用唯一识别码 UUID 生成工具,同样支持批量生成

选项说明

随机数生成器提供了几个选项来生成需要的随机数:生成个数:指定本次生成多少个随机数

最小值:指定生成的随机数的最小值(含),必须大于等于0

最大值:指定生成的随机数的最大值(含),必须大于最小值

生成结果:这里指定生成的结果是否要求唯一或允许重复

点击「生成随机数」按钮,即可按照设定的规则,生成一组随机数。

生成的随机数可应用于抽奖、测试 Mock 数据或者其他需要随机数字的应用中。

附:梅森旋转算法简介

梅森旋转算法(Mersenne twister)是一个伪随机数发生算法。由松本真和西村拓士在 1997 年开发,基于有限二进制字段上的矩阵线性递归,对于一个 k 位 2 进制数,梅森旋转算法可在 [0, 2^k-1] 的范围内生成离散型均匀分布的随机数。该算法可以快速产生高质量的伪随机数,修正了古典随机数发生算法的很多缺陷。

优点许可免费,而且对所有它的变体专利免费(除 CryptMT 外);

在应用最广泛的 MT19937 变体中,周期非常长,达到 2^19937-1;

在 1 ≤ k ≤ 623 的维度之间都可以均等分布;

除了在统计学意义上的不正确的随机数生成器以外,比其他伪随机数生成算法要快;

缺点需要大量的缓冲器(2.5kib),但在 TinyMT 版本中得到修正(只需 127 bits)

吞吐量中等,但在 SFMT 版本中修正

产生的随机数与 seed 相关,不能用于蒙特卡洛模拟

由相同的初始序列产生的随机状态几乎相同

非加密安全的,除 CryptMT 外

算法过程

整个算法主要分为三个阶段:第一阶段:获得基础的梅森旋转链;

第二阶段:对于旋转链进行旋转算法;

第三阶段:对于旋转算法所得的结果进行处理;

算法实现的过程中,参数的选取取决于梅森素数,故此得名。

梅森旋转算法的 C 语言实现

下面是梅森旋转算法的 C 语言实现代码,供参考:#include

// 定义MT19937-32的常数

enum

{

// 假定 W = 32 (此项省略)

N = 624,

M = 397,

R = 31,

A = 0x9908B0DF,

F = 1812433253,

U = 11,

// 假定 D = 0xFFFFFFFF (此项省略)

S = 7,

B = 0x9D2C5680,

T = 15,

C = 0xEFC60000,

L = 18,

MASK_LOWER = (1ull << R) - 1,

MASK_UPPER = (1ull << R)

};

static uint32_t mt[N];

static uint16_t index;

// 根据给定的seed初始化旋转链

void Initialize(const uint32_t seed)

{

uint32_t i;

mt[0] = seed;

for ( i = 1; i < N; i++ )

{

mt[i] = (F * (mt[i - 1] ^ (mt[i - 1] >> 30)) + i);

}

index = N;

}

static void Twist()

{

uint32_t i, x, xA;

for ( i = 0; i < N; i++ )

{

x = (mt[i] & MASK_UPPER) + (mt[(i + 1) % N] & MASK_LOWER);

xA = x >> 1;

if ( x & 0x1 )

{

xA ^= A;

}

mt[i] = mt[(i + M) % N] ^ xA;

}

index = 0;

}

// 产生一个32位随机数

uint32_t ExtractU32()

{

uint32_t y;

int i = index;

if ( index >= N )

{

Twist();

i = index;

}

y = mt[i];

index = i + 1;

y ^= (y >> U);

y ^= (y << S) & B;

y ^= (y << T) & C;

y ^= (y >> L);

return y;

}

c语言随机数字密码生成器,在线随机数生成器,批量随机数生成工具 - dute.org相关推荐

  1. 生成x位随机数字密码、验证码、字符密码

    1.生成x位随机数字密码public String getRandomNum (int length){String num = "";for (int i=0;i<leng ...

  2. 在线文本字符串批量替换工具

    在线文本字符串批量替换工具 在线文本字符串批量替换工具 工具支持将2个数据项随机混合批量生成数据项列表,分别输入2项数据后,设置生成数量和数据项分隔符,点击生成按钮即可完成数据随机混合拼接,支持导出到 ...

  3. 在线心语日历批量生成工具

    在线心语日历批量生成工具 在线心语日历批量生成工具 根据鸡汤文随机批量生成全年日历,支持单天或打包全部下载. 如此模板或内容不合适,可联系我们定制开发. 自媒体或微商将会非常有用,可以极大节约每天的作 ...

  4. 在线手机号码VCF批量导入工具

    在线手机号码VCF批量导入工具 在线手机号码VCF批量导入工具 本工具可以将电话号码列表生成vcf格式,快速导入手机通讯录中. 请直接从excel中复制电话和姓名列,粘贴后点击生成即可,第一列为号码, ...

  5. python随机数字密码生成器_Python简单生成8位随机密码的方法

    本文实例讲述了python简单生成8位随机密码的方法.分享给大家供大家参考,具体如下: #!/usr/bin/env python # -*- coding: utf-8 -*- import ran ...

  6. java90到100随机数生成器_Java随机数生成器

    是否可以让用户选择一个随机数的位数,特别是一个随机的大整数? 例如,如果用户希望长度为15位,则随机数生成器将只生成15位长的Big Integer. 看看Jon Skeets对stackoverfl ...

  7. php获取笔顺矢量,笔顺生成器在线-笔顺生成器php版源码下载-西西软件下载

    笔顺生成器php版源码,笔顺生成器在线工具及其源码资源,可以通过输入汉字来获取对应的笔顺以及书法方式,可以用来进行线上教育以及辅助工作,还能通过源码资源来进行掌握了解.本次放出笔顺生成器工具资源下载, ...

  8. c语言随机生成1到100随机数_VB之生成随机数

    VB6.0制作的一个生成随机数的程序,点击开始后,每个标签框不停转动,随机生成1~10以内的一位数字,点击停止,则转动停止,这个程序主要应用于活动时抽奖需要,下面是整个程序功能的实现. 程序界面主要如 ...

  9. html调取随机数字图片,05-图片随机数与访问(views)

    from django.http import HttpResponse, JsonResponse from django.shortcuts import render, redirect fro ...

  10. java 生成随机数字_java如何产生随机数

    一.java如何产生随机数? 1.打开eclipse 2.新建java项目,例如取名为"suijishu"点击完成 3.新建一个类进行测试 4.首先要在头部插入一个包 输入impo ...

最新文章

  1. 20175208『Java程序设计』课程 结对编程练习_四则运算
  2. Go Language 开发环境搭建
  3. 关于Apache mod_rewrite的中文配置、使用和语法介绍(实现URL重写和防盗链功能)
  4. linux 下oracle启动步骤
  5. 弹出层之2:JQuery.BlockUI
  6. Python基础(偏函数)
  7. 剑与远征种族刻印让玩家期待,绿裔刻印真有那么好看
  8. 18. JSON 操作
  9. 计算机网络 五层网络协议各司其职,一次讲清楚
  10. 泰安本地话听不懂,为何后来能勉强听懂?
  11. USACO习题:Your Ride Is Here
  12. 汤国安:GIS教育可能要崩盘
  13. 01_合宙X-MagicBox-820_Air820UG(Cat.1+GNSS)简介
  14. 一些css/css3特效以及边框流光特效实现
  15. CDR中人民币符号怎么打
  16. vue-router.esm.js?3423:2065 Uncaught (in promise) NavigationDuplicated: Avoided redundant navig错误解析
  17. 解决 hadoop 2.x 配置 yarn 运行任务 Running job 卡住
  18. 千亿资本角逐二手车电商,前瞻还是大泡沫?
  19. 15岁黑进北美防空司令部,社工界的鼻祖如何社工?
  20. 人脸验证:Joint Bayesian

热门文章

  1. SAP ABAP BDC录屏 数据导入和检验-实例
  2. DNX451 与 DNXCORE50 获取当前应用程序目录
  3. Android 继承于PopuWindow的自定义弹出窗体
  4. java 验证手机号
  5. 新浪短链接:15款最佳t.cn短网址在线生成工具
  6. JS面向对象/继承/原型链/this指向/call方法
  7. 大白菜u盘启动盘清除系统登录密码详细教程
  8. 串口打印调试信息(干货)
  9. 关于vue3 的vue-router.mjs:3434 ReferenceError: parcelRequire is not defined
  10. mysql一条sql是一个事物么_mysql 事物浅析