0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何在200 smart中生成伪随机数

CHANBAEK 来源:头条号朝拾忆 作者:头条号朝拾忆 2023-03-23 13:51 次阅读

上文写了博途中生成伪随机数的几种办法,现在试着使用其中简单的线性同余法实现在200 smart中完成类似功能。

回顾下线性同余法的公式:RandNum =(A * RandNum + B)% M

A、B、M均为常数,其中A是乘数,B是增量,M是模数,RandNum是初始值(种子)。

与博途不同的是,①:200 smart中没有双整数相除得余数的直接指令,需要我们自行实现;②:200 smart读取系统时间,最小计量单位只到秒,不能直接将其作为伪随机数发生器的种子,而博途能精确到纳秒,可以作为种子。

程序如下(只涉及基本运算,仅供参考):

poYBAGQb6LqAW2XQAABHHEdLM6I905.jpg

在"线性同余"中调用"双整数取余"

pYYBAGQb6LuAZaeyAAD3v2qxotY052.jpg

主程序

poYBAGQb6LyAVlPzAABsBh7R3n8327.jpg

"线性同余"

关于A、B、M的取值,可以参考以下方法:

pYYBAGQb6L2AO-tuAAE0qspDQ-A398.jpg

poYBAGQb6L6ABW_IAABPfEjhlF4200.jpg

"双整数取余"

poYBAGQb7IGAdNwEABvjP0yG4zA838.gif

运行情况

使用类似方法得到伪随机数序列,可用于程序的模拟、调试。

完。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 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

    请问如何生成固定的随机数

    比如有三个数字1 3 5 如何设计一个程序或者命令来生成随机数,但仅限于生成1,3或5
    发表于 05-01 11:56

    概率随机数生成【子模块】

    本帖最后由 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

    随机数发生器在信息安全系统中的应用

    中的随机函数,只能产生出随机数。它有其自身的内在规律,只能作为对外部世界的随机事件的近似模拟。目前最常见的
    发表于 12-05 09:55

    如何使用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

    单片机生成随机数的方法

    大家都知道单片机要生成随机数有一个比较简单的方法,就是用定时器的计数值来生成。但是如果是要求在一定数据范围内生成一个随机数,并且与之前
    发表于 01-18 06:07

    学习笔记 | 基于FPGA的随机数发生器(附代码)

    是专门的随机试验的结果,产生随机数有多种不同的方法。这些方法被称为随机数生成器。随机数最重要的特性是它在产生时后面的那个数与前面的那个数毫无
    发表于 04-21 19:42