Книга: Рассказы о математике с примерами на языках Python и C

Отгадывание чисел

Отгадывание чисел

Есть другой фокус с отгадыванием чисел. Попросим человека загадать трехзначное число, числа в котором идут в порядке уменьшения (например 752). Попросим человека выполнить следующие действия:

? записать число в обратном порядке (257)

? вычесть его из исходного числа (752 - 257 = 495)

? к ответу добавить его же, только в обратном порядке (495 + 594)

Получится число 1089, которое «фокусник» и объявляет публике.

Математически это тоже несложно доказать.

? Любое число вида abc в десятичной системе счисления представляется так:

abc = 100 * a + 10 * b + c.

? Разность чисел abc - cba:

100 * a + 10 * b + c + 100 - 100 * c - 10 * b - a = 100 * a - 100 * c - (a - c) = 100 * (a - c) - (a - c)

? Т. к. по условию a - c > 0, то результат можно записать в виде:

100 * (a - c) - (a - c) = 100 * (a - c) - 100 + 90 + 10 - (a - c) = 100 * (a - c - 1) + 10 * 9 + (10 - a + c)

Мы узнали разряды числа, получающегося в результате:

a1 = a - c - 1, b1 = 9, c1 = 10 - a + c

? Добавляем число в обратном порядке:

a1b1c1 + c1b1a1 = 100 * (a - c - 1) + 10 * 9 + (10 - a + c) + 100* (10 - a + c) + 10 * 9 + a - c - 1

Если раскрыть все скобки и сократить лишнее, в остатке будет 1089.

Оглавление книги


Генерация: 4.492. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз