クアッドフォーラムで何度も議論されてきたことです。MathRandという単語で検索すると、15ページ以上の結果が表示される
例えばこんなトピックがあります。
https://www.mql5.com/ru/forum/123337
https://www.mql5.com/ru/forum/111855
- www.mql5.com
MathRand()が値を取得する方法を教えてください。
MathRand()は、記載された範囲内で均等になることを期待できるのでしょうか?
少し前にphpで確認しました。
乱数を大量に生成してプロットしているようです。
また、例えば、大まかな見積もりとして、等しい数の数を求めることもできます。
数百個の数値を生成してファイルに書き出し、最低でもExcelでグラフ化する。
- www.mql5.com
ファジィーロジックアルゴリズムで重みをランダムに移動させたい
かたよりがち
もちろん、"すごい "はありがたいのですが、私の場合、不要です ))
凡そ
"-もし十分な「解像度」が0...32767 でなければ、 MathRand()*MathRand() を取ることができます、-分布はどちらかに非常に「偏った」ものになる ことはありません。"
間違えました.
期待値が中央より左にシフトする(1/4 * 32768^2 と思われるが、何も確信が持てない)。
一般論として、私の発言は間違っています。
凡そ
"-もし十分な「解像度」が0...32767でなければ、MathRand()*MathRand()を取ることができます、-分布はどちらかに非常に「偏った」ものになる ことはありません。"
間違えました.
期待値が中央より左にシフトする(1/4 * 32768^2 と思われるが、何も確信が持てない)。
一般的に、私の発言は間違っていました。
hmlo d-range [0, (2^rstep)-1].
long ranD(int rstep) { long div=1; long r=0; for(int i=1;i<=rstep;i++) { if(MathRand()+1>16383.5){if(i==1){r=1;}else{r+=div;}} div=div*2; } return(r); }
longの代わりにintやdouble、ulongを使用することができます。
rstep [0, 2^rstep-1] - このパラメータが何であるかは理解していない。
質問です。
double変数をランダムに、例えば小数点以下8桁までの精度で変更する必要があります。
MathRand()/32768では、0.00003のステップとなり、十分ではありません。
MathRand() を用いて、0.00000001 の離散度で (0...1) に一様分布する乱数値を得るには?
at rsign=1 (-1,1) at rsign=0 (0,1)
double ranD(int rsign,int rstep) { double div=2; double r=0; for(int i=1;i<=rstep;i++) { if(MathRand()+1>16383.5){r+=1/div;} div=div*2; } if(rsign==1) { r=2*r-1; } return(r); }
rstepは度数です。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
MathRand()が 値を取得する方法を教えてください。
MathRand()は、記載された範囲内で均等になることを期待できるのでしょうか?