привет! спасибо!
сможешь сделать так
я задаю число(комбинация цифр) допустим: 29856234563405863458
а скрипт находит это число в своей цепочке (+можно добавить на каком месте определилось эта комбинация цифр)
#define ABC 100
#define PI 0.314
#define COMPANY_NAME "MetaQuotes Software Corp."
ничего не скажеш, ну , просто красавцы :)
Дело вот в чем, для работы нескольких своих индикаторов я использую БПФ, все расчеты производил в MathCad, при подготовке к чемпионату начал все переносить на MQL. В качестве БПФ использую вот эту библиотеку http://codebase.mql4.com/ru/code/9696. Столкнулся с тем, что расчеты отличаются, и после долгих поисков нашел, что отличия заключены в точности задания числа Pi. Нашел алгоритм его расчета и привел, возможно кому то и пригодиться.
В приведенном варианте (глубине расчета) Pi совпадает со встроенной константой Pi в MathCad.
Надо иметь ввиду тот факт, что в MQL4 все функции имеют ограниченную точность вычислений после запятой. После 9 знака может быть мусор.
В Вашем случае это также буде иметь место.
for(int i=0; i<11; i++) Pi+= 1/MathPow(16,i)*(4/(8*i+1)-2/(8*i+4)-1/(8*i+5)-1/(8*i+6));
Надо иметь ввиду тот факт, что в MQL4 все функции имеют ограниченную точность вычислений после запятой. После 9 знака может быть мусор.
В Вашем случае это также буде иметь место.
for(int i=0; i<11; i++) Pi+= 1/MathPow(16,i)*(4/(8*i+1)-2/(8*i+4)-1/(8*i+5)-1/(8*i+6));
нужно doulbe i, так как сделано у меня в скрипте. Если int, то расчеты не верные будут. Я проверял число и довольно глубоко, все совпадает
Да, действительно, точность вполне, проверял: 3.141592653589793!
Но, на мой взгляд, инкремент с даблом ну никак не вяжется. Все дело в автоматическом приведении типов, так работает:
for(int i=0; i<11; i++) Pi+= 1/MathPow(16,i)*(4.0/(8*i+1)-2.0/(8*i+4)-1.0/(8*i+5)-1.0/(8*i+6));
С уважением,
Владимир
Да, действительно, точность вполне, проверял: 3.141592653589793!
Но, на мой взгляд, инкремент с даблом ну никак не вяжется. Все дело в автоматическом приведении типов, так работает:
for(int i=0; i<11; i++) Pi+= 1/MathPow(16,i)*(4.0/(8*i+1)-2.0/(8*i+4)-1.0/(8*i+5)-1.0/(8*i+6));
С уважением,
Владимир
Ну, блин, вы бы еще пи через интегралы вычислять стали!!!
pi = 4*MathArctan(1);
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Pi:
Author: Prival