[Архив!] Чистая математика, физика, химия и т.п.: задачки для тренировки мозгов, никак не связанные с торговлей - страница 449

 
MetaDriver: Лёша, тут тебя понесло. Это совершенно не так. То, что ты часто бываешь прав, не означает что ты прав всегда. Или может ты просто не понял моего утверждения.

Я не утверждаю, что всегда прав. Это было бы уже слишком.

Но в данном случае наблюдатель просто обязан рассуждать так, как рассуждали бы мудрецы, т.е. на основании имеющейся у них информации. И мы, собственно, так и стремимся рассуждать. Когда мы анализируем реплики, мы привлекаем только ту инфу, которая есть у мудреца - несмотря на то, что у нас есть инфа, имеющаяся у обоих.

 
Mathemat:

Я не утверждаю, что всегда прав. Это было бы уже слишком.

Но в данном случае наблюдатель просто обязан рассуждать так, как рассуждали бы мудрецы, т.е. на основании имеющейся у них информации. И мы, собственно, так и стремимся рассуждать. Когда мы анализируем реплики, мы привлекаем только ту инфу, которая есть у мудреца - несмотря на то, что у нас есть инфа, имеющаяся у обоих.

Эт я в курсе. Я про другое. У мудрецов фиксированные переменные. В терминах фиксированных переменных задача решается однозначно. У нас пространство переменных. Метазадача. Нам нужно найти при каких условиях диалог корректен. Решение из НАБОРА решений, или правил вывода наборов решений. Другая задача. И другое решение.

Насчёт "Вариант 5) S=93; P=356; a=4; b=89 отбрасывается сразу в свете моего дополнения после доказательства Леммы:......." - я б на твоём месте проверил.

Возможно лемма дырявая (вечером сам проверю).

Пока фсё, пошёл работать дальше.

 

Виноват,полностью нарушаю условие- никак не связанные с торговлей . Все же подскажите,я уже пять дней понять не могу.

int start()
{int y;
y= WindowFirstVisibleBar();Alert ("y",y);
for (;y>=0;y--)
{ double up=iFractals(Symbol(),PERIOD_M15,MODE_UPPER,y);
double down=iFractals(Symbol(),PERIOD_M15,MODE_LOWER,y);
if (up>=1||down>=1){
Alert("Previous upper fractal is:", up, " Previous lower fractal is:", down);Alert ("y",y);}}


WindowFirstVisibleBar() считает кол-во баров на видимом графике,все это целом должно работать так-алерт прописывает номера баров с фракталами.Все просто до предела.

Но эта простейшая фигня не работайет! Она выдает все подряд бары.Стало быть, простейший оператор if (up>=1||down>=1){

не работает,или я совсем тупой,Упрямо рассматриваю это место до чесотки в животе,не понимаю!

Очень хотелось бы понять сам принцип,что не так?гдеже я не вижу или не понимаю? Все вроде предельно просто и верно.Хочу знать!!

Помогите!

Если совсем не в той ветке,еще извиняюсь,тогда удалите.

 
Dimka-novitsek:

Виноват,полностью нарушаю условие- никак не связанные с торговлей . Все же подскажите,я уже пять дней понять не могу.

........................

Помогите!

Если совсем не в той ветке,еще извиняюсь,тогда удалите.

Ну вот же ветка. https://www.mql5.com/ru/forum/111497

Перенесите пост туда, а здесь в крайнем случае оставьте ссылку с просьбой нам ТАМ помочь. Здесь тема конкретно другая. Брысь! :)

Удачи.

 
Ну да,понял,щас туда иду.
 
MetaDriver:

Эт я в курсе. Я про другое. У мудрецов фиксированные переменные. В терминах фиксированных переменных задача решается однозначно. У нас пространство переменных. Метазадача. Нам нужно найти при каких условиях диалог корректен. Решение из НАБОРА решений, или правил вывода наборов решений. Другая задача. И другое решение.

Насчёт "Вариант 5) S=93; P=356; a=4; b=89 отбрасывается сразу в свете моего дополнения после доказательства Леммы:......." - я б на твоём месте проверил.

Возможно лемма дырявая (вечером сам проверю).

Да, я понял тебя. Мудрецы решают задачу исходя из суммы и произведения, которые они получили, а нам нужно в общем виде.

А лемма нифига не дырявая :) У меня недавно были сомнения по поводу дополнения (связанного с множителем 53), но сейчас их нет. Единственное уточнение: если сумма менее 200, то граничное число суммы - 103.

Ты сам посуди, сможет ли Б сказать свою первую реплику "Я знал и без тебя...", если получит сумму более 55 (у нас 93). Рассматривая возможные пары, он не пропустит вариант 53 и 40. Но число 53*40 раскладывается на множители однозначно (у нас сумма-то не более 100). Следовательно, он не сможет уверенно сказать "Я знал и без тебя...", т.к. это и есть случай однозначного разложения на множители.

 
Mathemat:

1) Да, я понял тебя. Мудрецы решают задачу исходя из суммы и произведения, которые они получили, а нам нужно в общем виде.

2) А лемма нифига не дырявая :) У меня недавно были сомнения по поводу дополнения (связанного с множителем 53), но сейчас их нет. Единственное уточнение: если сумма менее 200, то граничное число суммы - 103.

Ты сам посуди, сможет ли Б сказать свою первую реплику "Я знал и без тебя...", если получит сумму более 55 (у нас 93). Рассматривая возможные пары, он не пропустит вариант 53 и 40. Но число 53*40 раскладывается на множители однозначно (у нас сумма-то не более 100). Следовательно, он не сможет уверенно сказать "Я знал и без тебя...", т.к. это и есть случай однозначного разложения на множители.

1. Угу. Хорошо.

2. Тэкс. Кажется уговорил. Признаю логичность леммы. Давай ремонтировать.

Значит нам надо править вот это условие:

bool ValidSum(uint n) {return((n%2==1) && (MX[n-2].count>1) && n<=SMax);}

В нём указаны не все ограничения. Если я правильно понял - нужно внести в него в качестве верхней границы (первое-встречное-простое-число-превосходящее-SMax/2 + 2).

Так?

Ну вот, поправил. // см.прицеп.

Теперь сделано так:

   bool ValidSum(uint n) {return((n%2==1) && (MX[n-2].count>1) && n<=Top);}

где Top вычисляется в конструкторе так:

   for(Top=SMax/2;MX[Top].count>1;Top++);
   Top+=2;

Результаты такие:

2011.01.14 19:28:45 MetaSage (EURUSD,M10) //+---- Максимальная сумма = 200 -------------------+
2011.01.14 19:28:45 MetaSage (EURUSD,M10) S=93; P=356; a=4; b=89
2011.01.14 19:28:45 MetaSage (EURUSD,M10) S=41; P=148; a=4; b=37
2011.01.14 19:28:45 MetaSage (EURUSD,M10) S=37; P=160; a=5; b=32
2011.01.14 19:28:45 MetaSage (EURUSD,M10) S=23; P=76; a=4; b=19
2011.01.14 19:28:45 MetaSage (EURUSD,M10) S=17; P=52; a=4; b=13
2011.01.14 19:28:45 MetaSage (EURUSD,M10) //+---- Максимальная сумма = 200 -------------------+
2011.01.14 19:28:45 MetaSage (EURUSD,M10) //============== СТАРТ ========================
2011.01.14 19:22:39 MetaSage (EURUSD,M10) //+---- Максимальная сумма = 99 -------------------+
2011.01.14 19:22:39 MetaSage (EURUSD,M10) S=23; P=76; a=4; b=19
2011.01.14 19:22:39 MetaSage (EURUSD,M10) S=17; P=52; a=4; b=13
2011.01.14 19:22:39 MetaSage (EURUSD,M10) //+---- Максимальная сумма = 99 -------------------+
2011.01.14 19:22:39 MetaSage (EURUSD,M10) //============== СТАРТ ========================

Ну теперь то всё правильно? ;-))

Файлы:
 
drknn:
Итак, вы нашли подходящую пару чисел. А теперь можете смоделировать диалог мудрецов, отобразив все вычисления, которые произошли у каждого из них в голове на каждом этапе разговора?

Можем. Но пока чего-то влом. Уже устал немного от задачки, да и, как верно заметил Ричи, форекс недотраханный на кровати залежался... :)

Вопчем попробуйте-ка Вы. Зовите ещё подмогу, ежли надо. Основа есть. Осталось подстричь, причесать, ну и поодеколонить.

Кромсайте скрипт, авторских преследований не будет. Сегодня раздаю лицензии бесплатно. ;-)

 
Mathemat:
Напугал. Ну ладно, на доказательство смотреть не обязательно, оно все равно правильное :)

Ну так все-таки, с помощью ручки и бумажки, отбросив доказательства и леммы, кто-нибудь попробовал опровергнуть хотя бы одну пару из представленных восьми?
 

А зачем их отбрасывать, если леммы сильно помогают ускорить процесс опровержения? Я уже несколько раз писал подробные выкладки для частных случаев. Но они, похоже, никому особенно не интересны. Давайте еще раз попробуем.

Вообще говоря, пар не восемь, а только две (если сумма менее 100). Доказательство полной приемлемости пары 4,13 я уже привел недавно. Теперь опровергаем пару S=23; P=76; a=4; b=19:

А: (76 = 2*38 = 4*19.) Не могу.

Б: (Моя сумма 23 входит в Множество Допустимых Сумм МДС = {11,17,23,27,29,35,37,41,47,51,53}, при которых я, Б, могу быть уверен в том, что А не отгадает пару сразу. Смотрите лемму :) ) Я и так это знал, что не можешь.

А: (Б сообщил мне, что его сумма принадлежит МДС. Какие суммы могут быть у меня? 40 и 23. Только 23 входит в МДС, и я поэтому знаю сумму, а, следовательно, и сами числа - 4 и 19.) Я знаю числа.

Б: (Б фактически сказал мне, что при его произведении есть только один-единственный вариант суммы, входящей в МДС. Возможно, придется проверять все варианты. Учтем, что вариант 23 для сумм у нас будет всегда. Для отбрасывания варианта достаточно найти другую сумму из МДС.

Также учтем, что допустимыми суммами могут быть только нечетные числа.

23=2+21. П (=2*3*7) = 2*21 = 3*14 = 6*7. Суммы множителей - 23, 17, 13. Два варианта из МДС - облом.

23=3+20. П (=2*2*3*5) = 2*30 = 3*20 = 4*15 = 5*12 = 6*10. Суммы множителей - 32, 23, 19, 17. Уже достаточно. Облом.

23=4+19. П (=2*2*19) = 2*38 = 4*19. Суммы множителей 40, 23. Реальный кандидат. Тогда числа - 4 и 19. Но я еще не проверил все варианты :(

23=5+18. П (=2*3*3*5) = 2*45 = 3*30 = 5*18 = 6*15 = 9*10. Суммы множителей - 47, ... Уже достаточно, т.к. 47 входит в МДС, но еще в любом случае будет 23. Облом.

23=6+17. П (=2*3*17) = 2*51 = 3*34 = 6*17. Суммы множителей - 53, ... Уже достаточно, т.к. еще в любом случае будет 23. Облом.

23=7+16. П (=2*2*2*2*7) = ... = 16*7 - единственный допустимый вариант с нечетной суммой 23. Еще один реальный кандидат, но уже с другими числами - 16 и 7.

Всё. Перебор можно заканчивать. Я, мудрец Б, не знаю числа, т.к. у меня уже два варианта, из которых я не могу выбрать.) "Бе-е-е".

Причина обращения: