上文寫了博途中生成偽隨機數的幾種辦法,現在試著使用其中簡單的線性同余法實現在200 smart中完成類似功能。
回顧下線性同余法的公式:RandNum =(A * RandNum + B)% M
A、B、M均為常數,其中A是乘數,B是增量,M是模數,RandNum是初始值(種子)。
與博途不同的是,①:200 smart中沒有雙整數相除得余數的直接指令,需要我們自行實現;②:200 smart讀取系統時間,最小計量單位只到秒,不能直接將其作為偽隨機數發生器的種子,而博途能精確到納秒,可以作為種子。
程序如下(只涉及基本運算,僅供參考):
在"線性同余"中調用"雙整數取余"
主程序
"線性同余"
關于A、B、M的取值,可以參考以下方法:
"雙整數取余"
運行情況
使用類似方法得到偽隨機數序列,可用于程序的模擬、調試。
完。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
SMART
+關注
關注
3文章
219瀏覽量
44463 -
指令
+關注
關注
1文章
580瀏覽量
35398 -
程序
+關注
關注
114文章
3630瀏覽量
79660 -
模數
+關注
關注
0文章
40瀏覽量
13189 -
偽隨機數
+關注
關注
0文章
4瀏覽量
7104
發布評論請先 登錄
相關推薦
請問如何在MATLAB中生成一組在規定范圍符合指定分布的隨機數
如何在MATLAB中生成一組在規定范圍符合指定分布的隨機數如何在MATLAB中生成一組在規定范圍符合指定分布的
發表于 03-17 11:40
【assingle分享】labview隨機數發生器
,提供了多種不同的函數,下面大概總結一下。一、偽隨機數發生器在LABVIEW數值函數選板中,提供了一個隨機數發生器函數,返回一個0-1之間的偽隨機數
發表于 04-07 10:27
概率隨機數生成【子模塊】
本帖最后由 ZHZJK 于 2014-1-7 17:04 編輯
你還在用系統自帶的隨機數生成函數嗎你還在為模擬數值虛假而煩惱嗎而個人編寫了一個按照概率生成的隨機數子模塊將會解決這
發表于 12-31 16:49
【總結】LabVIEW隨機數發生器
的期望均值μ和期望標準偏差μ = E{x} = 0= [E{x – μ}2]1/2 = s偽隨機序列產生約290個采樣后才會出現重復。下面創建一個正態分布隨機數序列,并計算它的均值和標準方差。信號
發表于 01-30 14:51
關于隨機數生成器復用的問題
本人最近用verilog寫了一個隨機數生成器RNG,生成一個32bits的隨機數,然后加入到信道仿真的模塊中,在信道仿真的模塊里面需要有3個子模塊都需要用這個
發表于 07-27 16:59
關于STM32真隨機數算法的問題
rand是偽隨機數,真隨機數配合定時器time()計算產生隨機數,但是如果我想上電初始化的時候要產生一個隨機數怎么做,單片機每次上電時間都是
發表于 11-13 10:12
如何使用MSP430內部時鐘生成隨機數
■TI公司 MSP430微控制器產品部Lane Westlund不管是生成隨機器件地址、強化加密算法還是創建獨立產品密鑰,可靠地生成隨機數都變得日益重要。這些
發表于 07-12 06:20
keil-O2優化時系統自帶的偽隨機數會導致死機
暫時用的一個代替方法: //獲取偽隨機數//可以產生0~RANDOM_MAX-1的隨機數//seed:種子//max:最大值 //返回值:0~(max-1)中的一個值u32 app_get_rand
發表于 03-27 04:36
單片機C語言如何產生隨機數
來實現隨機數的產生。 C語言中有三個通用的隨機數發生器,分別為 rand函數、random函數、randomize 函數,但是rand函數產生的并不是真意正義上的隨機數,是一個偽
發表于 05-14 15:14
什么是隨機數
做開發的工程師們應該或多或少都接觸過隨機數,可能認為它就是一個隨機生成的數字嘛,使用時也很簡單,只要調用開發語言提供的函數即可。但實際上隨機數后面還是有著比較復雜但也有趣的知識點的。根
發表于 07-22 09:42
stm32偽隨機的使用
stm32偽隨機的使用前言最近使用了一款芯片,內置隨機數發生器,封裝了一個 8 Byte的指令接口,mcu每次發送指令給芯片,芯片就會返回 8 字節隨機數。但如果沒有芯片,這個
發表于 08-23 07:08
學習筆記 | 基于FPGA的偽隨機數發生器(附代碼)
是專門的隨機試驗的結果,產生隨機數有多種不同的方法。這些方法被稱為隨機數生成器。隨機數最重要的特性是它在產生時后面的那個數與前面的那個數毫無
發表于 04-21 19:42
評論