トップ  >  リファレンス  >  数学関数  >  MathSrand
スポンサーリンク
検索
カスタム検索
リファレンスツリー
オススメ

天才数学者のエドワード・オークリー・ソープの物語とジョン・ケリーの公式は必見です。
MathSrand


MathSrand


疑似乱数整数を生成する為のシードを設定します

関数書式:
void  MathSrand(
   int  seed      // シード値
   );



■引数
引数名 初期値 I/O 詳細
seed - In 乱数のシード


■戻り値
無し


■備考
MathRand()関数は疑似乱数シーケンスを生成する為に使用されます。

MathSrand()関数で特定の値を設定する事によって、
常に同じ疑似乱数シーケンスを生成する事が出来ます。

常に違うシーケンスを使用するには、MathSrand()関数の引数にGetTickCount()を渡して使います。
GetTickCount()はOS起動時間をmsec単位でカウントした値で、49日間(カウンタオーバーフロー)するまで同じ値を取得されるが無いので、
乱数シードに適しています。

TimeCurrent()はtick受信しない(例えば市場クローズしている週末や、極端に出来高が少ない状況)間は変化しないので乱数シードに使用するのは適切ではありません。



MathSrand()関数はsrand()と書く事も出来ます。
サンプルソース:
#property strict

void OnInit() {
    MathSrand(1);
    for( int i=0;i < 5 ; i++) {
        printf( "シード1の疑似乱数(%d回目):%d",i+1,MathRand());
    }

    Print("\n")

    MathSrand(2);
    for( int i=0;i < 5 ; i++) {
        printf( "シード2の疑似乱数(%d回目):%d",i+1,MathRand());
    }
}


結果:
シード1の疑似乱数(1回目):41
シード1の疑似乱数(2回目):18467
シード1の疑似乱数(3回目):6334
シード1の疑似乱数(4回目):26500
シード1の疑似乱数(5回目):19169

シード2の疑似乱数(1回目):45
シード2の疑似乱数(2回目):29216
シード2の疑似乱数(3回目):24198
シード2の疑似乱数(4回目):17795
シード2の疑似乱数(5回目):29484
固定シードなので、常に上記結果になります。





スポンサーリンク



Copyright ©2015 MT4でEA自作しちゃお〜 All Rights Reserved.


Top

inserted by FC2 system