« 猫on車 | トップページ | Numerical Recipes in CのCholesky分解ルーチンをExcel VBAに移植 »

2012年8月30日 (木)

メルセンヌツイスタの高速版(SFMT)がExcel VBAで簡単に使える!

いつの間にか、メルセンヌツイスタの高速版(SIMD-oriented Fast Mersenne Twister (SFMT))が開発されていた!2倍速いとのこと。

http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/index-jp.html

しかも、倍精度浮動小数点に特化したDouble precision SIMD-oriented Fast Mersenne    Twister (dSFMT)も!私がしたいシミュレーション、乱数は正規乱数が多いのでこれはいい。

このdSFMTを和田さんがdll化、VBAその他で使えるようにしてくれています。すばらしい!

ありがとうございます。

http://www001.upp.so-net.ne.jp/isaku/

ここからたどっていって

http://www001.upp.so-net.ne.jp/isaku/rand2.html

のlibZD.zipです。

では使わせてもらいます。

zipを解凍して、libZD.dllをパスが通った場所に置く。例えばc:\windows。

で、まずは正規乱数を30000個生成してみる。こんな感じで。

Option Explicit

Private Sub 実行_Click()
    Dim s As Long
    Dim i As Integer
   
    s = 1
   
    Call InitMt(s)
    Application.ScreenUpdating = False
   
    For i = 1 To 30000
        Worksheets("Sheet1").Cells(i + 2, 3) = NextNormal
    Next i
   
    Application.ScreenUpdating = True
   
End Sub

簡単。で、これをExcelのデータ分析ツールでヒストグラムにすると、、、

Normal

きれいな釣鐘型。ガウス乱数がものすごい速さで生成された。これは十分実用的ではないだろうか。これを使っていろいろやってみよう。

« 猫on車 | トップページ | Numerical Recipes in CのCholesky分解ルーチンをExcel VBAに移植 »

学問・資格」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: メルセンヌツイスタの高速版(SFMT)がExcel VBAで簡単に使える!:

« 猫on車 | トップページ | Numerical Recipes in CのCholesky分解ルーチンをExcel VBAに移植 »

最近の記事

最近のコメント

2024年12月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
フォト
無料ブログはココログ