Нереальная задача про программистов и их логическое мышление
easy

Нереальная задача про программистов и их логическое мышление

Логика — сила!

Как-то раз джун и мидл решили выяснить, кто из них сильнее в логике, и позвали на помощь сеньора. Сеньор придумал для них задачу про их дни рождения, и джун победил — первым угадал день рождения соперника.

Спустя какое-то время мидл решил взять реванш, вновь вызвал джуна на логическую битву и позвал сеньора их рассудить. На этот раз сеньор попросил каждого загадать и назвать ему по целому числу больше нуля и объявил условия спора. Он сложит эти числа или умножит друг на друга, а затем назовёт результат, но не скажет, сумма это или произведение. Спор выиграет тот, кто первым угадает, какое число загадал другой.

После этого сеньор назвал цифру 2020 и спросил по очереди мидла и джуниора, знает ли кто-то из них загаданное соперником число.

Мидл ответил: Нет.

Джун ответил: Нет.

И тогда мидл сказал: Да.

Чёрт побери, но как он это сделал?!

Для удобства представим, что мидл загадал число X, а джун — Y. Если сеньор назвал сумму их чисел, то получаем:

2020 = X + Y

Если же сеньор назвал результат умножения, получается, что

2020 = X × Y

Посмотрим, произведение каких чисел даёт 2020:

1 × 2020 = 2020

2 × 1010 = 2020

4 × 505 = 2020

5 × 404 = 2020

10 × 202 = 2020

20 × 101 = 2020

Выходит, что 2020 может получиться из произведения таких множителей, чтобы деление 2020 на одно из них не давало остатка:

1, 2, 4, 5, 10, 20, 101, 202, 404, 505, 1010, 2020

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

Представим, что мидл загадал число 7 (или любое другое, сейчас это вообще неважно). Мы помним, что сеньор назвал либо сумму, либо произведение двух целых чисел. Это значит, что 2020 не может быть произведением, потому что не делится на 7 без остатка. В таком случае было бы очевидно, что 2020 — это сумма двух загаданных чисел. Но мидл сказал, что не знает, какое число загадал джун — и это означает, что мидл загадал что-то из делителей числа 2020 — потому что он может получить со своим числом результат 2020 в любом случае. Но что именно загадал джун и какой вариант выбрал сеньор — он не знает, поэтому ответил «Нет».

Теперь посмотрим на ответ джуна.

Он размышляет точно так же, как и мидл, и тоже приходит к выводу, что несмотря на то что своё число он знает, он не может точно сказать — это сумма или произведение. Это значит, что джун тоже загадал делитель числа 2020. Но наверняка сказать джун тоже пока не может, поэтому отвечает «Нет».

А теперь самое интересное — посмотрим на логику мидла, когда он услышал «Нет» от джуна.

Мы выяснили, что джун и мидл загадали какие-то два из двенадцати целых чисел, произведение которых даёт 2020:

1, 2, 4, 5, 10, 20, 101, 202, 404, 505, 1010, 2020

Допустим, джун загадал какое-то из этих чисел, например 20. Это число может быть как слагаемым, так и множителем для числа 2020. Если это слагаемое, тогда загаданное мидлом число X = 2000. Но джун не сказал, что знает, какое число загадал мидл, поскольку 2000 не может быть множителем для произведения 2020, при котором второй множитель — тоже целое число. Это возвращает нас к версии, что 2020 — это произведение, а не сумма. Тогда джун, зная, что загадал 20, мог бы легко вычислить число мидла X = 2020/20X = 101. Но джун ответил, что не знает, какое число загадал мидл, значит, число Y ≠ 20.

Представим, что джун загадал число 404. Это число также может быть как слагаемым, так и множителем для числа 2020. Если это слагаемое, тогда загаданное мидлом число X = 1616. Но 1616 не может быть множителем для 2020, при котором второй множитель — тоже целое число. Тогда 2020 = 404X. Но джун не сказал, что знает, какое число загадал мидл, значит, X ≠ 5.

Получается, что число Y должно быть множителем для 2020, а разница между 2020 и Y также должна быть множителем для 2020. Получаются такие варианты:

Y2020 − Y
12019
22018
42016
52015
102010
202000
1011919
2021818
4041616
5051515
10101010
20200

Из этих вариантов только Y = 1010 удовлетворяет условию, что может быть как слагаемым, так и множителем для 2020 так, чтобы второй множитель был целым числом. 

И как только мидл это понял, он сразу разделил 2020 на своё загаданное число и получил то, что загадал джун. 

Всё, можно отдыхать и расслабляться, задачка была действительно не из лёгких. Если справились с ней сами — поделитесь в комментариях.

Обложка:

Алексей Сухов

Корректор:

Ирина Михеева

Вёрстка:

Маша Климентьева

Соцсети:

Юлия Зубарева

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме
easy