生成均匀分布的随机数(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));}
//=======================================================================

其中。

分钟--范围开始

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/32768.和n+1/32768.之间的n e Z & n e [0.32767]是空的。这不是好事。


 
joo >>:

где:

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

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


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


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

如果是的话。

那么在n/32768.和n+1/32768.之间,n e Z & n e [0.32767]为空。这不是好事。

亲爱的朋友,你知道吗,任何实数之间都有无限的实数,无论彼此之间多么接近?

那你知道区间(0,1)等同于权力的无限线吗?

如果没有--考虑一下吧。

如果是的话--正确拟定你的问题。

同时,尝试说在什么密度下(每单位长度的件数),你想有一个MF代?

或者,你希望你的GSF能够产生 所有数字 一个(0,1)的段?