以下介绍一种基于线性反馈位移寄存器的随机数生成方法,这种算法是某品牌MCU主控的随机数模块生成算法,主控上是电路直接实现的,产生随机数的速度很快,用C代码描述如下:

#define WORD unsigned short
#define DWORD unsigned intvoid GetRndValue(WORD wSeed, WORD *pwRndValueBuff, DWORD wSize)
{BYTE i;DWORD dwCnt;for (dwCnt = 0; dwCnt < wSize; dwCnt++){for (i = 0; i < 16; i++){//移位wSeed <<= 1;//如果最高位和次高位不相等(异或值为1)if ((wSeed & 0x8000) != ((wSeed & 0x4000) << 1)){wSeed |= 0x0001;}}*pwRndValueBuff = wSeed;pwRndValueBuff++;printf("\r\n%04X", wSeed);}
}

输入一个2字节的随机数种子wSeed(不能为0),然后指定随机数的存放区域pwRndValueBuff,指定生成随机数的个数wSize。

原理很简单,wSeed每次将最高两位的比特进行异或,输出异或运算后的比特,然后左移1位去掉最高位,最低位空出的1位用刚刚生成的随机比特来进行补充,循环往复,每生成满16个随机比特位组合成一个16位(2字节)的随机数。

线性反馈位移寄存器这种方法用C语言来描述要跑16次for循环才生成一个随机数,乍一看还不如用线性同余法,但是这个过程用电路或者FPGA描述的话是很简洁的,速度很快,随机数性质很好,周期也很长。

一种基于线性反馈位移寄存器的随机数生成方法相关推荐

  1. 企业微信推送消息延迟_一种基于企业微信的消息推送方法与流程

    本发明涉及消息推送技术领域,特别涉及一种基于企业微信的消息推送方法. 背景技术: 随着微信公众号的普及,微信企业号也越来越受到人们的关注.而腾讯公司在微信企业号的基础上又进行了进一步的升级,提供了类似 ...

  2. 机器人测钢卷直径_一种基于关节机器人的冷轧钢卷卷芯焊接方法与流程

    本发明涉及冶金技术领域,特别涉及一种基于关节机器人的冷轧钢卷卷芯焊接方法. 背景技术: 在冷轧罩式退火工序,钢卷采用立式吊具吊运,为防止钢卷卷芯松动导致卷芯钢带损坏和抽芯故障,必须将钢卷卷芯内圈焊接固 ...

  3. 一种基于实时分位数计算的系统及方法

    一.问题描述与技术挑战 在实际工作中,我们发现许多业务场景中都有对某一数值型指标实时统计分位数的需求,一般要求计算结果有很高准确率同时具备极低的计算延迟,实现这类需求给数据RD的开发工作带来一定的挑战 ...

  4. 一种基于数据表的共享智慧的方法

    发明名称: 一种基于数据表的共享智慧的方法 简单法律状态: 有效 申请号: CN201610631230.7 申请日: 2016-08-04 公开(公告)号: CN106293727B 公开(公告)日 ...

  5. 基于linux火焰识别算法,一种基于深度学习模型的火焰识别方法与流程

    本发明属于通信领域,具体涉及一种基于深度学习模型的火焰识别方法. 背景技术: 随着我国工业化与城镇水平的不断提高,现代设施大型公共建筑朝着空间大.进深广功能复杂的多元化方向发展,这对于防烟火朝着空间大 ...

  6. 人工智能阴影检测与去除,实现一种基于反射的阴影检测与去除方法

    人工智能阴影检测与去除,实现一种基于反射的阴影检测与去除方法(特约点评:人工智能阴影检测与去除,实现一种基于反射的阴影检测与去除方法对于阴影检测与去除任务提供了新的思路,这个创新点趣说人工智能必须推荐 ...

  7. oracle自动售票服务器,一种基于Oracle数据库客户端的业务自动处理方法与流程

    技术领域 本发明涉及计算机技术领域,具体地说是一种实用性强.基于Oracle数据库客户端的业务自动处理方法. 背景技术: 在实现预约挂号的移动应用中,由于医院业务系统处理缺失自动取消预约功能,经常需要 ...

  8. linux ipmitool检测内存,一种基于ipmitool工具循环侦测内存的方法与流程

    本发明涉及服务器技术领域,具体的说是一种基于ipmitool工具循环侦测内存的方法. 背景技术: 随着计算机技术的发展,计算机已经广泛应用于生活.工作中各个领域,对计算机计算处理能力和存储能力也提出了 ...

  9. 智齿客服Android集成流程,一种基于编程语言接入智齿客服的方法以及电子设备与流程...

    技术特征: 1.一种基于编程语言接入智齿客服的方法,其特征在于,包括: A.获取智齿客服的编号信息,通过脚本文件导入所述编号信息,以及配置所述智齿客服的属性信息: B.通过编程语言的内框架承载所述智齿 ...

最新文章

  1. 收藏 | 2021 十大机器学习库
  2. Linux下 su命令与su - 命令的区别
  3. iPhone X的刘海基本上就是一台Kinect
  4. 图解TCP协议中的三次握手和四次挥手
  5. Spring 事务core 模块-JdbcTeamplate 对象
  6. c语言实现灰度图像阈值分割,灰度图像--图像分割 阈值处理之平均阈值
  7. javascript中变量和函数的使用
  8. 解题报告 B_station
  9. 论文用impact、effect、influence 什么区别
  10. Shifterator库 | 词移图分辨两文本用词风格差异
  11. Proxmox集群网络配置
  12. gpu版本pytorch配置
  13. 电脑白屏,电脑白屏怎么办
  14. java编一个求圆柱表面积_Java:输入圆柱体的半径和高,计算并输出圆柱体的体积和表面积...
  15. PHP框架中Symfony对数据库的操作
  16. 欧姆龙CP1H与三菱E740变频器 485通讯 串口网关与变频器进行modbus RTU通讯。 功能:触摸屏进行参数设置监控,变频器采用三菱E740
  17. Rive在Flutter开发中的基本用法
  18. react-ssr之node代理
  19. 【JAVA】书店管理系统(附带前后端源码及资源)
  20. PS ,PR,等Adobe软件哪里可以下载?

热门文章

  1. Buildroot ipa image
  2. HMD和诺基亚,谁是才是真正的诺基亚?
  3. HDU - 5172 GTY's gay friends
  4. 201671030125 曾佳 + 实验三作业互评与改进报告
  5. 加多宝二次创业五周年:解锁品牌持续增长密码
  6. zscore标准化步骤_z-score的标准化究竟怎么弄?
  7. Cause: java.sql.SQLException: 无效的列类型
  8. 直播APP开发:熊猫直播求续命,直播的多种玩法
  9. 《DBA: DISTRIBUTED BACKDOOR ATTACKS AGAINST FEDERATED LEARNING》阅读笔记
  10. 别人的18岁,恐怕会碾压你的38岁