на С++ видел исходники генерации rand, кажется даже сайт специальный был, в общем гугл в помощь - совсем не диковинка
UPD:
поиск рулит.... https://www.mql5.com/ru/code/11077
CHighQualityRand - генератор случайных чисел высокой степени точности.
Использовать random.org, там реально случайные последовательности, основанные на погоде. API к нему имеется.
Любые другие способы - псевдо.
на С++ видел исходники генерации rand, кажется даже сайт специальный был, в общем гугл в помощь - совсем не диковинка
Спасибо щас позырю
Использовать random.org, там реально случайные последовательности, основанные на погоде. API к нему имеется.
Спасибо, щас гляну.
Спасибо щас позырю
выше пост обновил, используйте ALGLIB , он в поставке МТ
Попробуй GetMicrosecondCount()+i вместо GetTickCount()
Это те же микросекунды, в цикле они не работают
#property copyright "IgorM" #property link "https://www.mql5.com/ru/users/igorm" #property version "1.00" #include <Math\Alglib\alglib.mqh> //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { CHighQualityRandStateShell rnd_state; CAlglib::HQRndRandomize(rnd_state); for(int i = 0; i < 100; i++) { int rnd = CAlglib::HQRndUniformI(rnd_state, INT_MAX-100); // 100 подобрал, лень доки гуглить, если INT_MAX - ошибка printf("i = %d , rnd = %d", i, rnd); Sleep(123); } } //+------------------------------------------------------------------+
Парни, как более-менее рандом написать? Чтобы в цикле из примерно 100000-1000000 проходов хоть явного псевдо не было. Этот MathSrand(GetTickCount() или чего то свое);
MathRand(); Выдает в цикле при таком количестве явно не случайные цифры, а явную последовательность. Не одноразовое число надо бы, а в цикле(т.е. на один раз сойдет при вычислениях каких либо, а в цикле скорость пересчета при GetTickCount() или TimeCurrent() слишком велика для этих массивов, да и вообще может есть идеи случайных чисел? Я пробовал такое (не надо материться - не культурно это) через 2 рандома, не вариант.
MathSrand(TimeCurrent());
int s=MathRand();
MathSrand(s);
int s2=MathRand();
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
MathRand(); Выдает в цикле при таком количестве явно не случайные цифры, а явную последовательность. Не одноразовое число надо бы, а в цикле(т.е. на один раз сойдет при вычислениях каких либо, а в цикле скорость пересчета при GetTickCount() или TimeCurrent() слишком велика для этих массивов, да и вообще может есть идеи случайных чисел? Я пробовал такое (не надо материться - не культурно это) через 2 рандома, не вариант.
MathSrand(TimeCurrent());
int s=MathRand();
MathSrand(s);
int s2=MathRand();