上文寫了博途中生成偽隨機數的幾種辦法,現在試著使用其中簡單的線性同余法實現在200 smart中完成類似功能。
回顧下線性同余法的公式:RandNum =(A * RandNum + B)% M
A、B、M均為常數,其中A是乘數,B是增量,M是模數,RandNum是初始值(種子)。
與博途不同的是,①:200 smart中沒有雙整數相除得余數的直接指令,需要我們自行實現;②:200 smart讀取系統時間,最小計量單位只到秒,不能直接將其作為偽隨機數發生器的種子,而博途能精確到納秒,可以作為種子。
程序如下(只涉及基本運算,僅供參考):
在"線性同余"中調用"雙整數取余"
主程序
"線性同余"
關于A、B、M的取值,可以參考以下方法:
"雙整數取余"
運行情況
使用類似方法得到偽隨機數序列,可用于程序的模擬、調試。
完。
-
SMART
+關注
關注
3文章
230瀏覽量
45464 -
指令
+關注
關注
1文章
616瀏覽量
36438 -
程序
+關注
關注
117文章
3826瀏覽量
82953 -
模數
+關注
關注
0文章
40瀏覽量
13466 -
偽隨機數
+關注
關注
0文章
4瀏覽量
7231
發布評論請先 登錄
評論