网络知识 娱乐 在200 smart中生成伪随机数

在200 smart中生成伪随机数

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

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

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

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

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

在200 smart中生成伪随机数

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

在200 smart中生成伪随机数

主程序

在200 smart中生成伪随机数

"线性同余"

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

在200 smart中生成伪随机数

在200 smart中生成伪随机数

"双整数取余"

在200 smart中生成伪随机数

运行情况

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

完。