Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Подключи хранилище исходного кода MQL5 Storage. Это бесплатно!
majestic
738
majestic 2011.04.02 20:01 

нужна функция, возвращающая случайный индекс массива или случайное число от 0 до заданного N.

найденая здесь функция

int MathRandRange(int min, int max)
{
    return (MathRand() / 32768. * (max - min + 1) + min);
}

чевой-то не работает.

MathRandRange(0, 10); // постоянно = 8
Andrey Dik
10474
Andrey Dik 2011.04.02 20:07  
//————————————————————————————————————————————————————————————————————————
//Генератор случайных чисел из заданного интервала.
double RNDfromCI(double min,double max)
{return(min+((max-min)*MathRand()/32767.5));}
//————————————————————————————————————————————————————————————————————————
majestic
738
majestic 2011.04.02 20:21  

вобщем, все работает и так и так.

int init()
{
   MathSrand(TimeLocal());
   Alert(MathRandRange(0, 10)); // первое число при каждой инициализации одно и тоже
   Alert(MathRandRange(0, 10)); // дальше пошли случайные
   Alert(MathRandRange(0, 10));

глюк был из-за MathSrand.

без нее первое число как и нужно - случайное.

хотя и странно.. всегда считал, что она по типу randomize - переинициализирует генератор, что и по описанию так и есть, а на деле..

Nikolay Khrushchev
18928
Nikolay Khrushchev 2011.04.02 20:52  
сам написал, сам разобрался )
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий