Ребус, системы счисления (Python)
Заменить буквы цифрами так, чтобы стало верным равенство.
условие
решение
При каком основании системы счисления имеет решение следующий ребус:
Можно решить путём рассуждений, но мы напишем программу.
Пусть, основание системы счисления n.
Используем развёрнутую форму записи числа для перевода всех чисел в десятичную систему счисления. Учтём, что n1 = n, a n0 = 1.
Тогда, первое число:
W * n3 + Z * n2 + Y * n1 + X * n0 = W * n3 + Z * n2 + Y * n + X
второе число:
W * n4 + Z * n3 + X * n2 + Y * n1 + X * n0 = W * n4 + Z * n3 + X * n2 + Y * n + X
третье число:
Y * n4 + X * n3 + W * n2 + Z * n1 + X * n0 = Y * n4 + X * n3 + W * n2 + Z * n1 + X
Основание системы счисления – не меньше 2. Предположим, что оно меньше 20. Если решения не найдётся, изменим это число.
Искать будем набор, в котором все числа одновременно не могут быть равны нулю. Этот вариант игнорируем, продолжая поиск.
Для n4, n3, n2 введём соответственно переменные n4, n3, n2.
Программа может выглядеть так:
В результате выводим основание системы счисления и найденные значения:
Условие задачи из архива олимпиады по информатике и компьютерной безопасности