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

 
Mathemat:

Нет, неверно в п.2, ValS.

Б не знал заранее, что у А не получится: он заранее видел, что возможна комбинация 2+5, при которой А мог бы сразу узнать числа. Да, он это видел, но он еще не слышал реплики А - и поэтому он не мог знать заранее, что А не вычислит числа.

А насчет неувязки - да, именно так.

Еще варианты есть с другими числами?


Да, точно. Смотрю код, ищу ошибку
 
Mathemat:

Еще варианты есть с другими числами?


Да, есть.

Действительно в программе было несколько мелких и не совсем ошибок. После исправления получил 8 результатов:

4 5
4 13
4 37
5 8
8 17
8 23
11 32
13 16

Первый из них (4 и 5) скрупулезно проверил с помощью ручки и бумаги и вроде как диалог получается. На остальные нет времени, к сожалению, пора бежать.

 

Лемма. Сумма чисел никак не меньше 11 и должна представляться в виде 2+ нечетное_составное. Это легко доказывается из анализа первой реплики Б.

4 и 5 не подходят сразу: Б перед его первой репликой придется рассматривать вариант 2+7 (однозначное разложение на множители), который он не сможет отмести до реплики А.

Теперь - доказательство выделенного.

В своей первой реплике Б уже заранее знает, что А не может узнать пару. Это может быть только в том случае, если любое разложение суммы С на два слагаемых (которые будут множителями) содержит хотя бы одно составное число.

1. Сумма не может быть четной. Согласно недоказанной, но проверенной до 100 гипотезе Гольдбаха, любое четное до 100 представимо в виде суммы двух простых. Следовательно, если бы сумма была четной, Б не мог быть уверенным в том, что разложение произведения у А всегда неединственно.

2. Сумма не может быть равна 2+нечетное_простое. Иначе 2*нечетное_простое было бы однозначным разложением произведения А на множители, и Б не сказал бы свою реплику.

Следовательно, Сумма=2+нечетное_составное. Это необходимость условия.

Теперь - достаточность: если С=2+неч_составное, то любое разложение С на 2 слагаемых приводит к тому, что хотя бы одно из них - составное. Это легко доказать, перебирая возможные разложения суммы на слагаемые, двигаясь по возрастанию первого слагаемого и начиная с 2.

Если первое слагаемое нечетно, то второе четно и не равно 2. Следовательно, второе слагаемое - составное, и соответствующее произведение содержит минимум 3 сомножителя.

Если же первое слагаемое четно (и не равно 2), то составным оказывается уже первое слагаемое. Произведение снова имеет не менее 3 сомножителей. Достаточность доказана.

Перебор (хоть вручную, хоть на компе) дает следующий возможный ряд сумм, при котором Б скажет свою реплику: 11,17,23,27,29,35,37,41,47,51,53,57,59,65,67,71,77,79,83,87,89,93,95,97.

Дополнение: числа более 55 из этого ряда можно выкинуть, если вспомнить о том, что С<100. Действительно, если С>55, то Б должен рассмотреть вариант С = 53 + (С-53). Здесь второе число не меньше 2. Соответствующее произведение сомножителей 53 и (С-53) является единственным возможным разложением (53 - простое), т.к. перетаскивание какого-нибудь сомножителя из С-53 сделает первый сомножитель больше 100 (т.е. и сумму тоже). Следовательно, Б не смог бы сказать свою реплику.

Таким образом, все возможные суммы - из ряда 11,17,23,27,29,35,37,41,47,51,53.

 
Напугал. Ну ладно, на доказательство смотреть не обязательно, оно все равно правильное :)
 
Mathemat:
Напугал. Ну ладно, на доказательство смотреть не обязательно, оно все равно правильное :)
Пришёл с работы. Щас скрипт напишу. Кстати, Лёш, ты в курсе, что Б известно, что произведение, которое сообщили А обязательно чётное?
 
В курсе, в курсе. Это вытекает из нечетности суммы :)
 

Сделал скрипт (в прицепе)

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

Для наблюдателя же, в диапазоне сумм [2..99] решений ажно пять штук.

1) S=17; P=52; a=4; b=13

2) S=23; P=76; a=4; b=19

3) S=37; P=160; a=5; b=32

4) S=41; P=148; a=4; b=37

5) S=93; P=356; a=4; b=89


Кстати, интересный эффект наблюдаем, Лёша, объяснишь?

// Я сначала думал что косяк в программе. :)

2011.01.14 01:59:27 MetaSage (EURUSD,H6) //+-----------------------------------------------------------+
2011.01.14 01:59:27 MetaSage (EURUSD,H6) S=127; P=1276; a=11; b=116
2011.01.14 01:59:27 MetaSage (EURUSD,H6) S=121; P=904; a=8; b=113
2011.01.14 01:59:27 MetaSage (EURUSD,H6) S=97; P=712; a=8; b=89
2011.01.14 01:59:27 MetaSage (EURUSD,H6) S=95; P=534; a=6; b=89
2011.01.14 01:59:27 MetaSage (EURUSD,H6) S=93; P=356; a=4; b=89
2011.01.14 01:59:27 MetaSage (EURUSD,H6) S=83; P=316; a=4; b=79
2011.01.14 01:59:27 MetaSage (EURUSD,H6) S=77; P=292; a=4; b=73
2011.01.14 01:59:27 MetaSage (EURUSD,H6) S=59; P=220; a=4; b=55
2011.01.14 01:59:27 MetaSage (EURUSD,H6) S=47; P=172; a=4; b=43
2011.01.14 01:59:27 MetaSage (EURUSD,H6) S=41; P=148; a=4; b=37
2011.01.14 01:59:27 MetaSage (EURUSD,H6) S=37; P=160; a=5; b=32
2011.01.14 01:59:27 MetaSage (EURUSD,H6) S=23; P=76; a=4; b=19
2011.01.14 01:59:27 MetaSage (EURUSD,H6) S=17; P=52; a=4; b=13
2011.01.14 01:59:27 MetaSage (EURUSD,H6) //+----- Максимальная сумма = 200 -------------+
2011.01.14 01:59:03 MetaSage (EURUSD,H6) //+-----------------------------------------------------------+
2011.01.14 01:59:03 MetaSage (EURUSD,H6) S=93; P=356; a=4; b=89
2011.01.14 01:59:03 MetaSage (EURUSD,H6) S=41; P=148; a=4; b=37
2011.01.14 01:59:03 MetaSage (EURUSD,H6) S=37; P=160; a=5; b=32
2011.01.14 01:59:03 MetaSage (EURUSD,H6) S=23; P=76; a=4; b=19
2011.01.14 01:59:03 MetaSage (EURUSD,H6) S=17; P=52; a=4; b=13
2011.01.14 01:59:03 MetaSage (EURUSD,H6) //+----- Максимальная сумма = 99 ---------------------+

// Нашёл и поправил маленькую косяшку (не повлиявшую на результат, но всё же)

// bool ValidSum(uint n) {return((n%2==1) && (MX[n-2].count>1) && n<SMax);} // было
// bool ValidSum(uint n) {return((n%2==1) && (MX[n-2].count>1) && n<=SMax);} // стало

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

Честно говоря, в код не смотрел. Но хорошо, что он появился :)

Множества решений задачи, независимо от того, кто на нее смотрит, - наблюдатель или каждый из мудрецов, - должны быть одинаковыми. По поводу решений:

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

По остальным вариантам - немного позднее.

 
Mathemat:

Честно говоря, в код не смотрел. Но хорошо, что он появился :)

Множества решений задачи, независимо от того, кто на нее смотрит, - наблюдатель или каждый из мудрецов, - должны быть одинаковыми. По поводу решений:

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

По остальным вариантам - немного позднее.

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

По поводу лишних решений - похоже они есть. Я знаю где искать. Там (в скрипте) в разложениях на группы сомножителей одинаковые (по величине) множители учитываются так же как различные, т.е. могут породить несколько одинаковых по величине групп. Вечером поправлю. // Сейчас на работе.

Хошь сам поправь. Код доступен.

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