Спросите Волшебника #89
- Пусть n — любое целое число. Выразим n как d₀ * 1 + d₁ * 10 + d₂ * 100 + d₃ * 1000 + ... + dⁿ * 10ⁿ , где dⁿ — первая цифра, dⁿ -1 — вторая и так далее.
- n = [d 0 + d 1 + d 2 + ... + d n ] + [d 1 *9 + d 2 *99 + d 3 *999 + ... + d n *999...9 (число с n девятками)]
- n = [d 0 + d 1 + d 2 + ... + d n ] + 9*[d 1 *1 + d 2 *11 + d 3 *111 + ... d n *111...1 (число с n единицами)]
- 9*любое целое число делится на 9 без остатка. Поэтому, если d₀ + d₂ + d₂ + ... + dn , или сумма цифр, делится на 9, то и всё число должно делиться на 9.
Теперь, когда доказательство готово, можно рассмотреть этот фокус. В задаче нужно выбрать любое число, затем переставить цифры, чтобы получить второе число, а затем вычесть меньшее число из большего.
Сумма цифр в ответе всегда будет делиться на 9. Почему? Каждая цифра в исходном числе встречается где-то ещё в другом числе. Если рассматривать каждый набор цифр по отдельности, заменяя все остальные цифры нулями, то каждый набор можно свести к следующему виду: +/- n*[10 x - 10 y ] (где x>=y, а n — цифра) = +/-n *10 y * (10 xy - 1) = 10 y * (число, состоящее только из девяток) = число, делящееся на 9.
Рассмотрим пример. Пусть исходное число — 1965. Перемешаем его, получим 6951. 6951 - 1965 = 6*(1000-10) + 9*(100-100) + 5*(10-1) + 1*(1-1000) = 6*990 + 9*0 + 5*9 + 6*-999. Обратите внимание, что каждая часть делится на 9, следовательно, число, полученное после вычитания, также должно делиться на 9, и, наконец, сумма цифр также делится на 9.
Затем в программе нужно обвести число, кроме 0, и ввести сумму всех остальных цифр. После этого программе нужно только добавить к введенному числу число, которое будет делиться на 9. Например, если вы указали, что сумма цифр равна 13, то вы должны были обвести цифру 5, потому что 13 + 5 = число, делящееся на 9.
Причина, по которой нельзя обвести ноль, заключается в том, что если бы вы это сделали, а затем ввели число, уже делящееся на 9, программа не смогла бы определить, обвели ли вы 0 или 9.
«Тем, кто иногда теряет слишком много и потом сожалеет о своих действиях, может потребоваться самоограничение. Я бы посоветовал установить конкретный порог потери в таких случаях, например, 200 долларов. Лично я таких ограничений для себя не устанавливаю. Если я потеряю слишком много, это перестанет приносить удовольствие, и я остановлюсь по этой причине».
Но что для вас значит «слишком много»? На каждой второй странице вашего замечательного сайта вы предостерегаете от использования интуиции. Но когда дело доходит до проигрыша, вы говорите, что останавливаетесь, когда становится плохо. Особенно в видеопокере я устанавливаю размер банкролла и останавливаюсь, когда проигрываю его. Проигрыш всегда отвратителен, будь то 1 кредит или 300 кредитов.