一様分布乱数(0,1)の生成

 

MQLツールで一様 分布乱数(0,1)を外部*.dllなしで生成する?

 
intMathRand()
この関数は,0から32767の範囲の疑似乱数整数を返します。この関数を初めて呼び出す前に、MathSrand を 使って疑似乱数発生器を初期状態に設定する必要があります。
  MathSrand(TimeLocal());
// 10個の数字を表示する。
for(int i=0;i<10;i++ )
Print("乱数値 ", MathRand());
 
sergeev >>:
int MathRand()
Функция возвращает псевдослучайное целое число в дипазоне от 0 до 32767. Перед первым вызовом функции необходимо использовать функцию MathSrand, чтобы перевести генератор псевдослучайных чисел в начальное состояние.
Пример:


そんなの知ってるよ!

範囲(0.1)を聞いているのです。

 

同志は0と1を均等に せよというので、偶数と奇数に分ける。

MathSrand(TimeLocal());
  // Отображает 10 чисел.
  for(int i=0; i<10; i++ )
     Print("произвольная величина ", MathMod(MathRand(),2));

このように

 
Urain писал(а)>>

同志は0と1を均等にせよというので、偶数と奇数に分ける。

こんな感じ。

それとも、与えられた範囲の実数ということでしょうか。では、このように。

MathRand() / 32767.0
 

レンジをお探しの方、ごめんなさい。

MathSrand(TimeLocal());
  // Отображает 10 чисел.
  for(int i=0; i<10; i++ )
     Print("произвольная величина ", MathRand()/32768);

というようなものです。

 
lea >>:

Или имеются ввиду вещественные числа в заданном диапазоне. Тогда так:


そこ、そこ。

MathSrand(TimeLocal());
  // Отображает 10 чисел.
  for(int i=0; i<10; i++ )
     Print("произвольная величина ", MathRand()/32768);
弱いんです。
 
gumgum >>:

Вот, вот.

Слабовато. помощнее?
MathSrand(TimeLocal());
...............
...............
...............
//---------------------------Непрерывный Генератор СЧ---------------------
double CRG(double min,double max) { return(min+((max-min)*MathRand()/32767.0));}
//=======================================================================

のところです。

min - レンジスタート

max - 範囲の終わり。


あなたの場合はそうでしょう。

void Start()
{
MathSrand(TimeLocal());
...............
...............
...............
double p=CRG(0.0,1.0);
}

//---------------------------Непрерывный Генератор СЧ---------------------
double CRG(double min,double max) { return(min+((max-min)*MathRand()/32767.0));}
//=======================================================================
 

もしそうなら

double ran= MathRand()/32768.;
の場合、n e Z & n e [0.32767]におけるn/32768.とn+1/32768.の間は空である。これはまずい。


 
joo >>:

где:

min - начало диапазона

max - конец диапазона.


В Вашем случае будет:


==
MathRand()/32768.
:(
 
gumgum писал(а)>>

もしそうなら

の場合、n/32768.とn+1/32768.の間で、n e Z & n e [0.32767]は空であることを示します。これはまずい。

親愛なる皆さん、どんなに近い実数同士でも、その間に無限の実数が存在することをご存知ですか?

また、区間(0,1)がべき乗の無限直線に相当することはご存知でしょうか?

ない場合 - 考えてみてください。

もしそうなら、質問を正しく作成してください。

同時に、どの程度の密度(単位長さあたりの個数)のMFを作りたいかを考えてみてください。

あるいは、GSFが生成することを望むかもしれません。 全数(0,1)のセグメント?