製作亂數表 - 模擬與交易.1

閱讀時間約 2 分鐘
利用亂數,在複雜的多個條件下,透過模擬而得到參考答案,在計算科學越來越進步的情況下,此法應用的領域範圍,已獲得大爆發式的增加。本文利用Excel VBA工具,來產生兩種亂數表,一個是均勻分配、另一個是標準常態分配亂數。
首先要說明的是,Excel VBA與其他軟體一樣,都有內建的亂數產生機制,基於實驗後的回顧檢察需求,我個人的需求是一個亂數種子(Seed),可以對應一個足夠亂的亂數表,而足夠亂的意思就是產生的數字要不重複、沒有週期循環的要求。如果再加上簡單易懂、易學的要求,那麼『平方取中法』最適合推薦。
以一個六位數整數的亂數表製作來說,平方取中法顧名思義就是第一步先隨機選取一個六位數整數,也就是種子作為整張亂數表的第一個亂數,接者第二個亂數的產生方式就是將前一個六位數整數對自己相乘(就是平方),原則上會獲得一個12位整數的數值,此時再把前後頭尾的三位數消去,如此就可以取出中段的六個整數數字,此即為取中的意思,然後第三個亂數、第四個…,依序透過迴圈方式給予產生出來。
例如取543710這個六位數做為種子,平方後會得到295620564100這個12位數,
1. 對該數字乘以0.001並取整數,可得295620564這個9位整數數
2.再對該數字乘以0.000001,可得295.620564這個3位整數與6位小數
3.取出小數,然後乘以1000000,如此可得620564這個亂數,並重複步驟1、2、3,即可獲得一張均勻分配的亂數表
當然,此法有需要作出防呆處理,亦即六位數整數自我相乘,萬一僅只得出11位數,而非12位數,固定去除頭尾三位數的運作下,得到的亂數必然越來越小,進而變成重複出現,而本文提供的防呆機制為亂數數值過小,就運用簡單的加法、乘法、取餘數的機制,再次確保亂數表可以順利編制產生。
既然已經會製作均勻分配的亂數表,再利用已知的常態分配公式,
標準常態分配函數
搭配取捨法這個刪除機制,就能改變均勻分配的狀態,以下針對4個標準差範圍內的亂數表製作說明如下:
1. 首先製作兩張亂數表
2. 對6位數整數除以80000,取其餘數,然後減40000,接者除以10000,此時數字範圍變成-3.9999~3.9999之間的均勻分配亂數,並帶入常態分配公式計算出函數值,且已知該函數值最大不會超過0.4
3. 捨的部分:利用第二個亂數表產生0~0.4之間的均勻分配亂數,並且跟步驟2的函數值作大小比較,只要函數值不超過第二個0~04之間的均勻分配亂數,就予以保留
4. 重複步驟2、3,累積製作足夠所需的亂數數量
Excel VBA程式碼與註解請參考如下(平方取中法,均勻分配亂數)
Excel VBA程式碼與註解請參考如下(取手法,標準常態分配亂數)
即將進入廣告,捲動後可繼續閱讀
為什麼會看到廣告
avatar-img
21會員
112內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Piemann的沙龍 的其他內容
挑戰南極點 1911.12.15,阿蒙森是人類史上第一個抵達南極點的探險家,然後阿蒙森拔得頭籌且平安回國,而另一組人34天後抵達南極,但是領隊的史考特則慘被凍死 來回1400英里的距離,阿蒙森的準備方式是這樣進行
山難一二事 1. 凜冬之際,山岳能手Piemann,精挑數名隊友,欲在台灣的奇萊之巔,共賞午夜銀河,享受人生 2. 其中一名隊友Bill是三鐵金牌人,Piemann行前諄切隊友必備物品、時間、路徑
Piemann,是一位優秀的機長,總是準點起降,他是公司器重的王牌。
新竹新埔有個金漢柿餅,老闆年約60歲 老闆說金漢這個店鋪的名稱,其實是我爸爸的名字,從我的阿公開始就在這裡種植柿子,然後用人力和預測天氣,加工成柿餅,那個時候沒有機器烘乾與冷藏設備,只要天氣沒估計好,削一個柿子,就是爛掉一個,所以柿餅自古早就很稀有。
警世 ! 1975年查爾斯.艾利斯發表在《金融分析師期刊》的文章:輸家遊戲 喜歡網球比賽的人會知道,像溫布頓這樣的國際級比賽,選手要打出很多個讓對手無法回擊的致勝球,盡量打到邊邊角角壓線的球讓對手miss,才有機會贏得勝利,所以比賽稱為「贏家遊戲」 但如果是你我這樣普通人來打呢?
台灣的金鑽鳳梨 優點 : 耐旱、耐貧脊、結果時期免裝袋可省勞工、外表硬皮耐磨擦利於輸送裝箱、口味佳市場銷路好 缺點 : 因為優點太多 !
挑戰南極點 1911.12.15,阿蒙森是人類史上第一個抵達南極點的探險家,然後阿蒙森拔得頭籌且平安回國,而另一組人34天後抵達南極,但是領隊的史考特則慘被凍死 來回1400英里的距離,阿蒙森的準備方式是這樣進行
山難一二事 1. 凜冬之際,山岳能手Piemann,精挑數名隊友,欲在台灣的奇萊之巔,共賞午夜銀河,享受人生 2. 其中一名隊友Bill是三鐵金牌人,Piemann行前諄切隊友必備物品、時間、路徑
Piemann,是一位優秀的機長,總是準點起降,他是公司器重的王牌。
新竹新埔有個金漢柿餅,老闆年約60歲 老闆說金漢這個店鋪的名稱,其實是我爸爸的名字,從我的阿公開始就在這裡種植柿子,然後用人力和預測天氣,加工成柿餅,那個時候沒有機器烘乾與冷藏設備,只要天氣沒估計好,削一個柿子,就是爛掉一個,所以柿餅自古早就很稀有。
警世 ! 1975年查爾斯.艾利斯發表在《金融分析師期刊》的文章:輸家遊戲 喜歡網球比賽的人會知道,像溫布頓這樣的國際級比賽,選手要打出很多個讓對手無法回擊的致勝球,盡量打到邊邊角角壓線的球讓對手miss,才有機會贏得勝利,所以比賽稱為「贏家遊戲」 但如果是你我這樣普通人來打呢?
台灣的金鑽鳳梨 優點 : 耐旱、耐貧脊、結果時期免裝袋可省勞工、外表硬皮耐磨擦利於輸送裝箱、口味佳市場銷路好 缺點 : 因為優點太多 !
你可能也想看
Google News 追蹤
Thumbnail
題目敘述 Integer to English Words 給定一個整數num 請轉換成對應的的英文數字表達(One, Two, Three, ... 那種數字表達式)
隨機漫步看似簡單,但卻是模擬許多自然界現象的基礎,相關的觀念及程式實作方式,對於瞭解亂數、機率、Perlin noise等工具,會有相當大的幫助。
在這一章中,會透過介紹在螢幕上模擬物體移動時,其背後的原理與實作方法,來介紹亂數(random number)、隨機分布(random distribution)、Perlin noise等,這些可以用來引入隨機性的工具。
Thumbnail
題目給定一個布林代數的二元樹,要求我們計算最後的結果。 葉子節點都是真假值 非葉子節點都是布林運算子
Thumbnail
C 語言的函式庫定義了許多好用的函式,在寫 C++ 的時候可以拿來用。這是因為 C++ 當初在設計的時候,就有刻意把 C 涵蓋進來。 基本用法 首先要導入 C 語言的標準函式庫: #include <cstdlib> 以 c 作為開頭表示它是 C 語言的函式庫,只是被我們拿來 C++ 的程式
Thumbnail
在EXCEL中如果要進行四則運算,必須先輸入一個等於『=』,之後再輸入想要運算的算式。 但如果EXCEL的資料中,有一堆算式,但是前面沒有等於該怎麼快速計算呢😣 【📁檔案下載】 看教學之前可以先下載練習檔,學中做、做中學效果更好哦。 檔案下載 【▶️影音教學】
在求學階段,你已經對代數的計算熟到不能再熟,所以變數(variable)對你來說應該不至於太陌生,先來看看以下這個例子:   
Thumbnail
最近會試著寫一些統整類的文章, 幫助讀者、觀眾整理、吸收、複習已經學習到的演算法框架。 找零錢框架 在以前學過的題目中,我們已經學會了考零錢的抽象思考邏輯與框架,就是試著用每一種銅板去湊出n元(也就是找零錢的過程) 寫成虛擬碼或演算法,找零錢用了幾枚銅板可以這樣表達 # 銅板數目累加​
Thumbnail
本篇主要是設計,當【沒有任何數值】與【原本就有數值】這兩種情況結合在一起時的 VBA 解決方案。分享內容包括張忍大師的函數解決方法。文章中包含影片檔案下載以及參考文獻連結。
Thumbnail
在Python中,數值運算非常直觀,你可以使用標準的數學運算符號進行基本的數值運算。以下是一些基本的數值運算: 進行計算時,按照「先乘除後加減」的規則,並優先計算小括號刮起來的運算式。 print('答案:' ,(1+1)*2) #​答案: 4 復合型態的運算子 指定運算子 = 若是結合算術
Thumbnail
題目敘述 Integer to English Words 給定一個整數num 請轉換成對應的的英文數字表達(One, Two, Three, ... 那種數字表達式)
隨機漫步看似簡單,但卻是模擬許多自然界現象的基礎,相關的觀念及程式實作方式,對於瞭解亂數、機率、Perlin noise等工具,會有相當大的幫助。
在這一章中,會透過介紹在螢幕上模擬物體移動時,其背後的原理與實作方法,來介紹亂數(random number)、隨機分布(random distribution)、Perlin noise等,這些可以用來引入隨機性的工具。
Thumbnail
題目給定一個布林代數的二元樹,要求我們計算最後的結果。 葉子節點都是真假值 非葉子節點都是布林運算子
Thumbnail
C 語言的函式庫定義了許多好用的函式,在寫 C++ 的時候可以拿來用。這是因為 C++ 當初在設計的時候,就有刻意把 C 涵蓋進來。 基本用法 首先要導入 C 語言的標準函式庫: #include <cstdlib> 以 c 作為開頭表示它是 C 語言的函式庫,只是被我們拿來 C++ 的程式
Thumbnail
在EXCEL中如果要進行四則運算,必須先輸入一個等於『=』,之後再輸入想要運算的算式。 但如果EXCEL的資料中,有一堆算式,但是前面沒有等於該怎麼快速計算呢😣 【📁檔案下載】 看教學之前可以先下載練習檔,學中做、做中學效果更好哦。 檔案下載 【▶️影音教學】
在求學階段,你已經對代數的計算熟到不能再熟,所以變數(variable)對你來說應該不至於太陌生,先來看看以下這個例子:   
Thumbnail
最近會試著寫一些統整類的文章, 幫助讀者、觀眾整理、吸收、複習已經學習到的演算法框架。 找零錢框架 在以前學過的題目中,我們已經學會了考零錢的抽象思考邏輯與框架,就是試著用每一種銅板去湊出n元(也就是找零錢的過程) 寫成虛擬碼或演算法,找零錢用了幾枚銅板可以這樣表達 # 銅板數目累加​
Thumbnail
本篇主要是設計,當【沒有任何數值】與【原本就有數值】這兩種情況結合在一起時的 VBA 解決方案。分享內容包括張忍大師的函數解決方法。文章中包含影片檔案下載以及參考文獻連結。
Thumbnail
在Python中,數值運算非常直觀,你可以使用標準的數學運算符號進行基本的數值運算。以下是一些基本的數值運算: 進行計算時,按照「先乘除後加減」的規則,並優先計算小括號刮起來的運算式。 print('答案:' ,(1+1)*2) #​答案: 4 復合型態的運算子 指定運算子 = 若是結合算術