上文寫了博途中生成偽隨機數的幾種辦法,現在試著使用其中簡單的線性同余法實現在200 smart中完成類似功能。
回顧下線性同余法的公式:RandNum =(A * RandNum + B)% M
A、B、M均為常數,其中A是乘數,B是增量,M是模數,RandNum是初始值(種子)。
與博途不同的是,①:200 smart中沒有雙整數相除得余數的直接指令,需要我們自行實現;②:200 smart讀取系統時間,最小計量單位只到秒,不能直接將其作為偽隨機數發生器的種子,而博途能精確到納秒,可以作為種子。
程序如下(只涉及基本運算,僅供參考):
在"線性同余"中調用"雙整數取余"
主程序
"線性同余"
關于A、B、M的取值,可以參考以下方法:
"雙整數取余"
運行情況
使用類似方法得到偽隨機數序列,可用于程序的模擬、調試。
完。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
SMART
+關注
關注
3文章
227瀏覽量
44761 -
指令
+關注
關注
1文章
611瀏覽量
35814 -
程序
+關注
關注
117文章
3795瀏覽量
81411 -
模數
+關注
關注
0文章
40瀏覽量
13307 -
偽隨機數
+關注
關注
0文章
4瀏覽量
7149
發布評論請先 登錄
相關推薦
請問如何在MATLAB中生成一組在規定范圍符合指定分布的隨機數
如何在MATLAB中生成一組在規定范圍符合指定分布的隨機數如何在MATLAB中生成一組在規定范圍符合指定分布的
發表于 03-17 11:40
什么是隨機數
做開發的工程師們應該或多或少都接觸過隨機數,可能認為它就是一個隨機生成的數字嘛,使用時也很簡單,只要調用開發語言提供的函數即可。但實際上隨機數后面還是有著比較復雜但也有趣的知識點的。根
發表于 07-22 09:42
學習筆記 | 基于FPGA的偽隨機數發生器(附代碼)
是專門的隨機試驗的結果,產生隨機數有多種不同的方法。這些方法被稱為隨機數生成器。隨機數最重要的特性是它在產生時后面的那個數與前面的那個數毫無
發表于 04-21 19:42
C語言中偽隨機數的產生及性能檢驗
系統仿真或加密算法中常需要產生滿足一定分布函數的 偽隨機數 ,高級程序設計語言中的庫函數采用線性同余法產生一個在[0,32767] 服從均勻分布的偽隨機數,但每次程序運行的結果都
發表于 07-07 16:35
?70次下載
C語言random函數偽隨機數產生
由C語言的stalib.h庫里面的random函數可以得到一個0-0x7FFFh的隨機數,當然,調用隨機數函數之前,是要進行種子的篩選的,以當前的時間參數作為種子,可以使得偽隨機數至少
發表于 08-25 17:56
?1.3w次閱讀
神經網絡的偽隨機數生成方法
為了克服有限精度效應對混沌系統的退化影響,改善所生成隨機序列的統計性能,設計了一種新的基于六維CNN(細胞神經網絡)的64 bit偽隨機數生成
發表于 02-02 15:49
?0次下載
偽隨機數生成算法
在計算機上用數學的方法產生隨機數列是目前通用的方法,它的特點是占用的內存少,速度快.用數學方法產生的隨機數列是根據確定的算法推算出來的,嚴格說來并不是隨機的,因此一般稱用數學方法產生的隨機數
發表于 04-03 10:25
?6次下載
FPGA的偽隨機數發生器學習介紹
的隨機試驗的結果,產生隨機數有多種不同的方法。這些方法被稱為隨機數生成器。隨機數最重要的特性是它在產生時后面的那個數與前面的那個數毫無關系。
評論