上文写了博途中生成伪随机数的几种办法,现在试着使用其中简单的线性同余法实现在200 smart中完成类似功能。
回顾下线性同余法的公式:RandNum =(A * RandNum + B)% M
A、B、M均为常数,其中A是乘数,B是增量,M是模数,RandNum是初始值(种子)。
与博途不同的是,①:200 smart中没有双整数相除得余数的直接指令,需要我们自行实现;②:200 smart读取系统时间,最小计量单位只到秒,不能直接将其作为伪随机数发生器的种子,而博途能精确到纳秒,可以作为种子。
程序如下(只涉及基本运算,仅供参考):
在"线性同余"中调用"双整数取余"
主程序
"线性同余"
关于A、B、M的取值,可以参考以下方法:
"双整数取余"
运行情况
使用类似方法得到伪随机数序列,可用于程序的模拟、调试。
完。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
SMART
+关注
关注
3文章
224浏览量
44669 -
指令
+关注
关注
1文章
607浏览量
35665 -
程序
+关注
关注
116文章
3779浏览量
80896 -
模数
+关注
关注
0文章
40浏览量
13274 -
伪随机数
+关注
关注
0文章
4浏览量
7119
发布评论请先 登录
相关推荐
请问如何在MATLAB中生成一组在规定范围符合指定分布的随机数
如何在MATLAB中生成一组在规定范围符合指定分布的随机数如何在MATLAB中生成一组在规定范围符合指定分布的
发表于 03-17 11:40
什么是随机数
做开发的工程师们应该或多或少都接触过随机数,可能认为它就是一个随机生成的数字嘛,使用时也很简单,只要调用开发语言提供的函数即可。但实际上随机数后面还是有着比较复杂但也有趣的知识点的。根
发表于 07-22 09:42
学习笔记 | 基于FPGA的伪随机数发生器(附代码)
是专门的随机试验的结果,产生随机数有多种不同的方法。这些方法被称为随机数生成器。随机数最重要的特性是它在产生时后面的那个数与前面的那个数毫无
发表于 04-21 19:42
C语言中伪随机数的产生及性能检验
系统仿真或加密算法中常需要产生满足一定分布函数的 伪随机数 ,高级程序设计语言中的库函数采用线性同余法产生一个在[0,32767] 服从均匀分布的伪随机数,但每次程序运行的结果都
发表于 07-07 16:35
•70次下载
C语言random函数伪随机数产生
由C语言的stalib.h库里面的random函数可以得到一个0-0x7FFFh的随机数,当然,调用随机数函数之前,是要进行种子的筛选的,以当前的时间参数作为种子,可以使得伪随机数至少
发表于 08-25 17:56
•1.3w次阅读
神经网络的伪随机数生成方法
为了克服有限精度效应对混沌系统的退化影响,改善所生成随机序列的统计性能,设计了一种新的基于六维CNN(细胞神经网络)的64 bit伪随机数生成
发表于 02-02 15:49
•0次下载
伪随机数生成算法
在计算机上用数学的方法产生随机数列是目前通用的方法,它的特点是占用的内存少,速度快.用数学方法产生的随机数列是根据确定的算法推算出来的,严格说来并不是随机的,因此一般称用数学方法产生的随机数
发表于 04-03 10:25
•6次下载
FPGA的伪随机数发生器学习介绍
的随机试验的结果,产生随机数有多种不同的方法。这些方法被称为随机数生成器。随机数最重要的特性是它在产生时后面的那个数与前面的那个数毫无关系。
评论