English Page
/*
Mersenne Twister DLL
== 2002-01-13. presented by Einguste ==
== 2002-01-22. BCC55(Borland C++ Compiler 5.5)用のMakefileを追加 ==
== 2002-01-30. mt19937ar DLL版追加 ==
== 2002-02-17. mt19937ar-cok DLL版追加 ==
== 2002-03-05. mt19937ar、mt19937ar-cok ライセンス変更 ==
== 2003-02-25. アーカイブ作成しなおし ==
== 2008-12-31. MT.dll、MT-cok.dllをアップ(MinGW-5.1.4でコンパイル) ==
*/
Mersenne Twisterの詳細はこちら(松本 眞先生のページ)
DLL版アーカイブ(ソース含む)
Zip 40.9 kbytes
7-Zip 21.3 kbytes
2008-12-31. 追加:MT.dll(mt19937ar.dll相当)、MT-cok.dll(mt19937ar-cok.dll相当)
Zip 16.8 kbytes
7-Zip 11.4 kbytes
※圧縮形式が異なるだけで、同じアーカイブです。
LICENSE:
mt19937.dll(mt19937-dll.c):'mt19937-2.c'のライセンスに準じます。(Artistic License)
mt19937m.dll(mt19937-mdll.c):'mt19937-2.c'のライセンスに準じます。(Artistic License)
cokus.dll(cokus-dll.c):'cokus.c'のライセンスに準じます。(GPL2)
mt19937ar.dll(mt19937ar-dll.c):'mt19937ar.c'のライセンスに準じます。(BSD License)
mt19937ar-cok.dll(mt19937ar-cok-dll.c):'mt19937ar-cok.c'のライセンスに準じます。(BSD License)
詳細は各ソースファイルをご覧下さい。
これらのDLLの利用は自由です。ただし私は何らの保証をいたしません。各自の責任でご利用ください。
DLLをより良くするためのアドバイスは歓迎いたします。
使用方法:
VBAのサンプルソース(Module1.bas)を参考にしてください。
参考:
1000万回の擬似乱数生成にかかった時間
(テスト環境:PentiumIII 800MHz 256MBytes / Windows2000)
DLL(Excel VBAより呼び出し)
| MinGW | BCC55 | 備考 |
mt19937-2 | 2.672 sec | 2.685 sec |
mt19937-2 | 2.835 sec | 2.802 sec | * ThreadSafeテスト版 |
cokus | 2.714 sec | 2.738 sec |
mt19937ar | 2.685 sec | 2.513 sec | * genrand_real2 [0,1)-interval |
mt19937ar-cok | 2.517 sec | 2.618 sec | * genrand_real2 [0,1)-interval |
rnd(VBA) | 2.680 sec | 2.680 sec |
EXE(参考データ)
| MinGW | BCC55 |
mt19937-2 | 0.660 sec | 0.600 sec |
cokus | 0.290 sec | 0.740 sec |
mt19937ar | 0.500 sec | 0.640 sec |
mt19937ar-cok | 0.250 sec | 0.660 sec |
rand | 0.640 sec | 0.130 sec |
※ソースをご覧いただければ分かるとおり、単純な特に何もしないDLLです。
VisualBasicやHSPなどから利用できること以外にメリットはないでしょう。
※スレッドセーフ版は開発中です。テストが不十分ですので、ご注意ください。
※バイナリ生成にはMinGWを使用させていただきました。
※Mersenne Twisterのことはこのページ(とってもごはん)で知りました。<m(__)m>
※BCC55に関する情報は世界最小のSusie Plug-inを作るを参考にさせていただきました。<m(__)m>
※最後になりましたがDLL版公開を許可してくださいました松本 眞先生に感謝いたします。<m(__)m>
Top page