Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
где ^ - возведение в степень, для двоичной системы заменяется сдвиговыми операциями << (к примеру если есть число 467 и тебе его нужно умножить на 10, ты же не будешь его реально умножать, а просто дорисуешь нолик, в двоичной системе все аналогично, а сдвиг это очень быстрая операция)
----
Если Вы не имели ввиду операцию "^", а подразумевали "<<", то и в этом случае Ваш пример не рабочий, т.к. в конечном итоге массив заполнится степенями двойки.
посиди с бумажкой и ручкой переводя числа в двоичную систему и обратно и все получится, успехов в изучении.
Вы прежде чем советы раздавать, в документацию гляньте.XOR - никакой не сдвиг, и результат будет совсем иной, чем тот, о котором спрашивал Fast.
----
Если Вы не имели ввиду операцию "^", а подразумевали "<<", то и в этом случае Ваш пример не рабочий, т.к. в конечном итоге массив заполнится степенями двойки.Пальцы, пальцы не растопыривайте!
^ - классическое обозначение операции возведения в степень (например, в visual basic 6). Возведение в степень в двоичной системе исчисления - сдвиг влево. Так что ваше замечание не к месту.
^ - классическое обозначение операции возведения в степень (например, в visual basic 6). Возведение в степень в двоичной системе исчисления - сдвиг влево. Так что ваше замечание не к месту.
Угу.
Человек пишет на MQL, причем только учится.
У него проблема, в решении которой он попросил помочь.
Ему дают код
for(int a=0;a<(MaxIndx-MinIndx)-2;a++)
arr[MinIndx+1+a]=i&(2^a);
Который:
а) оказывается не на MQL;
б) даже если "^" заменить на "<<" не станет работать так, как просил топикстартер.
---
А моё замечание, оно, конечно, не к месту.
Извините, что понтоваться мешаю.
Мне вот только интересно. Массивы то зачем. Двоичное кодирование полностью снимает проблему. Одно число, которое можно преобразовать в двоичный вид. Эта мысль звучала здесь уже не раз. И говорили об этом разные люди. Может довольно заваулировано конечно. Но смысл тот же.
Мне вот только интересно. Массивы то зачем. Двоичное кодирование полностью снимает проблему. Одно число, которое можно преобразовать в двоичный вид. Эта мысль звучала здесь уже не раз. И говорили об этом разные люди. Может довольно заваулировано конечно. Но смысл тот же.
На этот вопрос никто кроме топикстартера ответить не сможет. Может быть там какая-нибудь матричная алгебра интенсивно используется.
Вы прежде чем советы раздавать, в документацию гляньте.XOR - никакой не сдвиг, и результат будет совсем иной, чем тот, о котором спрашивал Fast.
----
Если Вы не имели ввиду операцию "^", а подразумевали "<<", то и в этом случае Ваш пример не рабочий, т.к. в конечном итоге массив заполнится степенями двойки.Пальцы, пальцы не растопыривайте!
папочка, остынь. Как раз перед написанием заглянул в https://www.mql5.com/ru/docs/basis/operations/bit
Я имел в виду именно то что написано, написанный пример не будет работать ни на одном языке программирования, но достаточно лаконично отражает суть. ^ - это возведение в степень, если бы я использовал в примере сдвиги он бы несколько вырос, хотя был бы полностью рабочим но не так объяснял суть.
int z=1;
for(int a=0;a<(MaxIndx-MinIndx)-2;a++){
arr[MinIndx+1+a]=i&z;
z=z<<1;}
P.S. насчет заполнения степенями действительно лажанулся, лечится ?: или немного другим вариантом
for(int a=0;a<(MaxIndx-MinIndx)-2;a++){arr[MinIndx+1+a]=i&1;
a=a>>1;}
На этот вопрос никто кроме топикстартера ответить не сможет. Может быть там какая-нибудь матричная алгебра интенсивно используется.
В общем, что-то вроде этого, но это лишь сравнительно небольшой участок кода, до которого я сам не смог додуматься. Спасибо всем за представленные варианты, освободится немного времени и буду все тестировать!
Тему думаю закрывать не нужно вдруг надо будет еще что-то спросить, так что буду благодарен всем за помощь! Если что-то выйдет толковое с задуманным скриптом, обещаю поделиться! Всем спасибо.
Решение задачи реализовал в качестве скрипта для mt5.
Главная функция OnStart()
Функция, с помощью которой осуществляем перебор _F1()
Еще раз благодарю PapaYozh за предоставленную помощь!
*Минимальный размер массива для перебора должен быть больше или равен 3.