上文写了博途中生成伪随机数的几种办法,现在试着使用其中简单的线性同余法实现在200 smart中完成类似功能。
回顾下线性同余法的公式:RandNum =(A * RandNum + B)% M
A、B、M均为常数,其中A是乘数,B是增量,M是模数,RandNum是初始值(种子)。
与博途不同的是,①:200 smart中没有双整数相除得余数的直接指令,需要我们自行实现;②:200 smart读取系统时间,最小计量单位只到秒,不能直接将其作为伪随机数发生器的种子,而博途能精确到纳秒,可以作为种子。
程序如下(只涉及基本运算,仅供参考):
在"线性同余"中调用"双整数取余"
主程序
"线性同余"
关于A、B、M的取值,可以参考以下方法:
"双整数取余"
运行情况
使用类似方法得到伪随机数序列,可用于程序的模拟、调试。
完。
全部0条评论
快来发表一下你的评论吧 !