Мы придумали, как разгадывать математические ребусы с помощью компьютера и программы на языке «Python». Наша программа поможет решить даже сложные ребусы всего за несколько простых шагов.
Ключевые слова: ребус, знаменитый ребус, помощь компьютера, программа Python, переменная.
На уроках математики нам очень нравится решать математические ребусы. Сначала нам попадались простые ребусы, и мы научились решать их в уме:
Задания становились сложнее, и нам приходилось пробовать разные способы, чтобы найти хотя бы один верный ответ. Мы составили небольшой список правил для решения таких математических ребусов:
- Каждой букве в ребусе соответствует одна цифра. Если буквы разные, то и цифры должны быть разные — от 0 до 9.
- Загаданные числа не должны начинаться с нуля. Значит, первая цифра каждого числа от 1 до 9.
- Количество букв в ребусе не должно быть больше 10. Количество цифр — всего 10, от 0 до 9. Если в ребусе загадали больше 10 букв, то цифр просто не хватит, и такой ребус разгадать не получится.
- Если складывают два, например, трёхзначных числа, а в сумме получается четырёхзначное число, то старшая цифра в ответе всегда равна 1.
- Если в ребусе загадано деление, то лучше заменить его умножением. Например, ребус TWELVE / SIX = TWO можно переписать так: TWO x SIX = TWELVE.
Несколько раз нам попадались очень сложные ребусы, и мы так и не смогли их разгадать. Мы начинали их разгадывать и даже находили некоторые цифры, но до конца решить не получалось.
Зимой мы пошли на курсы программирования на языке «Python». Нам захотелось применить полученные знания на практике. Мы придумали, как с помощью компьютера и языка «Python» решать сложные ребусы. Наш способ состоит в том, что решение ребуса разбивается на простые и понятные шаги.
Мы взяли очень известный ребус, который придумал Алан Уэйн в 1945 году. Эту задачу можно найти в интернете: [1, 2, 3, 4].
«В 1945 году Алан Уэйн (Alan Wayne) представил особый вид математического ребуса, именуемый «doubly-true». Такой ребус состоит из слов, обозначающих цифры или числа, которые также являются математическим равенством. Например: THREE + FOUR = SEVEN (три + четыре = семь), зашифровано 28566 + 7495 = 36061 либо 27566 + 8495 = 36061.»
Мы узнали, что ребус имеет два ответа ирешили найти эти ответы нашим способом.
– По количеству загаданных букв понадобится 10 переменных на языке «Python»: t , h , r , e , f , o , u , s , v , n .
– Создаём 10 вложенных циклов (по количеству переменных). Каждая переменная меняет своё значение от 0 до 9. Так мы заставим машину перебрать все возможные варианты загаданных букв.
– Проверяем, чтобы числа не начинались с "0" . Для этого перемножаем старшие разряды каждого числа и сравниваем результат с " 0" . Если хотя бы одна цифра будет равна нулю, то этот вариант не подходит.
– Проверяем, чтобы все переменные были разными. Для этого создаём множество из этих 10 переменных и проверяем его длину. Если окажется, что длина множества меньше 10, значит, некоторые переменные одинаковые, и этот вариант не подойдёт.
– Для каждого варианта проверяем, получится ли правильный ответ. Каждое число собираем из суммы разрядных слагаемых:
Первое слагаемое : t *10000 + h *1000 + r *100 + e *10 + e *1
Второе слагаемое : f *1000 + o *100 + u *10 + r *1
Сумма : s *10000 + e *1000 + v *100 + e *10 + n *1
Если все условия выполнились, печатаем ответ.
Вот полный текст программы:
После того как программа была готова, мы посчитали, сколько вариантов придётся перебрать компьютеру. Всего 10 вложенных циклов, в каждом цикле по 10 шагов. Получилось 10х10х10х10х10х10х10х10х10х10 = 10 000 000 000, это десять миллиардов вариантов! Мы заготовили табличку из двух строк , чтобы вписать туда два ответа изапустили программу.
Машина начала перебирать варианты, зашумели вентиляторы — значит, программа работает! И вот первый долгожданный ответ: 15633+7806=23439. А следом за ним второй: 16355+9403=25758. И оба ответа совсем не те, про которые написано в интернете! Проверили на калькуляторе — подходят! Ждём дальше. Через час мы получили целых 38 ответов знаменитого ребуса! Наконец, на экране появились три значка >>> . Вентиляторы стихли — расчёт окончен! Вот они, наши ответы:
15633 + 7806 = 23439 |
26811 + 4708 = 31519 |
43622 + 9106 = 52728 |
64233 + 8902 = 73135 |
16355 + 9403 = 25758 |
27566 + 8495 = 36061 |
47266 + 9102 = 56368 |
68233 + 4902 = 73135 |
16533 + 7405 = 23938 |
28455 + 6704 = 35159 |
49266 + 7102 = 56368 |
68411 + 2904 = 71315 |
16544 + 7805 = 24349 |
28566 + 7495 = 36061 |
49622 + 3106 = 52728 |
69311 + 2503 = 71814 |
17533 + 6405 = 23938 |
32611 + 8906 = 41517 |
53722 + 8407 = 62129 |
73422 + 9104 = 82526 |
17544 + 6805 = 24349 |
35711 + 6207 = 41918 |
53811 + 7408 = 61219 |
75244 + 9102 = 84346 |
17633 + 5806 = 23439 |
36255 + 8902 = 45157 |
57811 + 3408 = 61219 |
79244 + 5102 = 84346 |
19355 + 6403 = 25758 |
36711 + 5207 = 41918 |
58722 + 3407 = 62129 |
79422 + 3104 = 82526 |
24811 + 6708 = 31519 |
38255 + 6902 = 45157 |
62311 + 9503 = 71814 |
|
26455 + 8704 = 35159 |
38611 + 2906 = 41517 |
62411 + 8904 = 71315 |
Теперь мы попробуем решить нашим способом другие математические ребусы. Обязательно получим ответы, которые пока ещё не найдены! Будем рады, если наш способ вам понравился.
Литература:
- Сайт: Занимательная математика, раздел: “Волшебная шкатулка” http://novijmir.blogspot.com/p/blog-page_21.html
- Сайт: Удивительный мир математики, раздел: “Математические ребусы” http://michaylova63.blogspot.com/2013/06/blog-post_24.html
- Сайт: Ответы на РобоБота https://vk.com/@technocareer_msk-otvety-na-robobota
- Сайт: Советы мастеров, раздел: “Как решить математические ребусы” https://soveti-masterov.com/sovety/kak-reshat-matematicheskie-rebusy.html
- Златопольский Д. М. Основы программирования на языке Python. Издательство: ДМК-Пресс, 2018 г.
- Сайт: PythonRu, урок 11: “Множества (set) / Уроки по Python для начинающих” https://pythonru.com/uroki/mnozhestva-set-uroki-po-python-dlja-nachinajushhih