上文写了博途中生成伪随机数的几种办法,现在试着使用其中简单的线性同余法实现在200 smart中完成类似功能。
回顾下线性同余法的公式:RandNum =(A * RandNum + B)% M
A、B、M均为常数,其中A是乘数,B是增量,M是模数,RandNum是初始值(种子)。
与博途不同的是,①:200 smart中没有双整数相除得余数的直接指令,需要我们自行实现;②:200 smart读取系统时间,最小计量单位只到秒,不能直接将其作为伪随机数发生器的种子,而博途能精确到纳秒,可以作为种子。
程序如下(只涉及基本运算,仅供参考):
在"线性同余"中调用"双整数取余"
主程序
"线性同余"
关于A、B、M的取值,可以参考以下方法:
"双整数取余"
运行情况
使用类似方法得到伪随机数序列,可用于程序的模拟、调试。
完。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
SMART
+关注
关注
3文章
219浏览量
44405 -
指令
+关注
关注
1文章
579浏览量
35377 -
程序
+关注
关注
114文章
3631浏览量
79543 -
模数
+关注
关注
0文章
40浏览量
13184 -
伪随机数
+关注
关注
0文章
4浏览量
7101
发布评论请先 登录
相关推荐
请问如何在MATLAB中生成一组在规定范围符合指定分布的随机数
如何在MATLAB中生成一组在规定范围符合指定分布的随机数如何在MATLAB中生成一组在规定范围符合指定分布的
发表于 03-17 11:40
【assingle分享】labview随机数发生器
,提供了多种不同的函数,下面大概总结一下。一、伪随机数发生器在LABVIEW数值函数选板中,提供了一个随机数发生器函数,返回一个0-1之间的伪随机数
发表于 04-07 10:27
概率随机数生成【子模块】
本帖最后由 ZHZJK 于 2014-1-7 17:04 编辑
你还在用系统自带的随机数生成函数吗你还在为模拟数值虚假而烦恼吗而个人编写了一个按照概率生成的随机数子模块将会解决这
发表于 12-31 16:49
【总结】LabVIEW随机数发生器
的期望均值µ和期望标准偏差µ = E{x} = 0= [E{x – µ}2]1/2 = s伪随机序列产生约290个采样后才会出现重复。下面创建一个正态分布随机数序列,并计算它的均值和标准方差。信号
发表于 01-30 14:51
关于随机数生成器复用的问题
本人最近用verilog写了一个随机数生成器RNG,生成一个32bits的随机数,然后加入到信道仿真的模块中,在信道仿真的模块里面需要有3个子模块都需要用这个
发表于 07-27 16:59
关于STM32真随机数算法的问题
rand是伪随机数,真随机数配合定时器time()计算产生随机数,但是如果我想上电初始化的时候要产生一个随机数怎么做,单片机每次上电时间都是
发表于 11-13 10:12
如何使用MSP430内部时钟生成随机数
■TI公司 MSP430微控制器产品部Lane Westlund不管是生成随机器件地址、强化加密算法还是创建独立产品密钥,可靠地生成随机数都变得日益重要。这些
发表于 07-12 06:20
keil-O2优化时系统自带的伪随机数会导致死机
暂时用的一个代替方法: //获取伪随机数//可以产生0~RANDOM_MAX-1的随机数//seed:种子//max:最大值 //返回值:0~(max-1)中的一个值u32 app_get_rand
发表于 03-27 04:36
单片机C语言如何产生随机数
来实现随机数的产生。 C语言中有三个通用的随机数发生器,分别为 rand函数、random函数、randomize 函数,但是rand函数产生的并不是真意正义上的随机数,是一个伪
发表于 05-14 15:14
什么是随机数
做开发的工程师们应该或多或少都接触过随机数,可能认为它就是一个随机生成的数字嘛,使用时也很简单,只要调用开发语言提供的函数即可。但实际上随机数后面还是有着比较复杂但也有趣的知识点的。根
发表于 07-22 09:42
stm32伪随机的使用
stm32伪随机的使用前言最近使用了一款芯片,内置随机数发生器,封装了一个 8 Byte的指令接口,mcu每次发送指令给芯片,芯片就会返回 8 字节随机数。但如果没有芯片,这个
发表于 08-23 07:08
学习笔记 | 基于FPGA的伪随机数发生器(附代码)
是专门的随机试验的结果,产生随机数有多种不同的方法。这些方法被称为随机数生成器。随机数最重要的特性是它在产生时后面的那个数与前面的那个数毫无
发表于 04-21 19:42
评论