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

描述

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

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

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

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

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

指令

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

指令

主程序

指令

"线性同余"

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

指令

指令

"双整数取余"

指令

运行情况

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

完。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分