ISSN 0236-235X (P)
ISSN 2311-2735 (E)

Bookmark

Next issue

1
Publication date:
16 March 2021
-->

The article was published in issue no. № 3, 1989
Abstract:
Аннотация:
Authors: () - , () -
Ключевое слово:
Page views: 15743
Print version

Font size:       Font:

В школьные годы меня здорово раздражали головоломки, которые печатаются на последних страницах научно-популярных журналов. Я жадно читал такие журналы от корки до корки, хотел знать все, прорабатывал каждую статью, а когда добирался до развлекательных разделов со всяческими головоломками, ребусами, шарадами, то недоумевал: зачем нужны пустые !абавы? Уж лучше бы заняли это место еще одной статьей!

Отношение к подобным развлечениям у меня изменилось, когда в школе учился мой сын. Уму непостижимо, сколько задают на дом школьникам! И когда- я видел сына, увлеченно решающего какой-нибудь пустяковый ребус, я. думал: пусть хоть это отвлечет его от бесконечного поглощения информации.

Но вот сын перешел в девятый класс. В расписании появился новый предмет: информатика. И мое отношение к головоломкам из научно-популярных журналов изменилось вновь. Я с удивлением обнаружил, что они не так уж бессодержательны! Разгадывание буквенно-цифровых ребусов представлялось мне не иначе, как перебор числовых комбинаций в арифметическом устройстве ЭВМ, а за раздумьями сыщика над обстоятельствами таинственного преступления виделись логические операции булевой алгебры.

Будь моя воля, я в изобилии иллюстрировал бы подобными головоломками скучные страницы нынешних учебников по информатике. На самых простых примерах можно наглядно показать весьма существенные особенности решения задач на ЭВМ.

Чисто «машинное» решение задачи может в корне отличаться от «человеческого». У людей есть интеллект, смекалка, интуиция, наконец. Компьютер же может похвастаться пока лишь точностью и быстродействием. Оптимальное решение задачи достигается сочетанием ценных качеств машины и человека. Хорошим примером являются, на мой взгляд, бук-вен но-цифровые ребусы. Мне вспоминается один из них. опубликованный в журнале «Квант»:

-

Нужно определить, какие цифры скрываются за латинскими буквами. Разным буквам, естественно, соответствуют разные цифры.

Конечно, эту задачу можно решить чисто «п о -машин ном у» — перебором всех вариантов, последовательно придавая каждой из переменных А, С, Е, Р, R, S, U значения от нуля до девяти и отбирая те комбинации, которые отвечают условию.

Просто, но уж очень долго! Придется примерно десять миллионов раз делать такую проверку. А это пока многовато даже для самого современного персонального компьютера.

Оставим на время компьютер в покое и обратимся к логике. Без всякой ЭВМ ясно, что Р может быть только единицей, a U — девяткой. Если это так, то Е = 0. Проанализировав самый правый столбец букв в условии задачи, делаем вывод, что R=10 —А.

Можно попытаться составить еще гесколько соотношений между буквами и, решив их, найти окончательный ответ. Но не слишком ли долго продлятся такие поиски? Не привлечь ли для этого компьютер?

Варьируя значение А, С, R, S в пределах от 2 до 8 (ведь 0,1 и 9 уже закреплены за Е, Р и U соответственно), машина станет проверять соотношение ■ 900 + 10S + А + 9000 + 100S +

+ 10S + R = 10000 + 100А + ЮС. Если оно выполняется, компьютер заменит буквы цифрами в равенстве USA + USSR = PEACE и выведет его на печать. Если соотношение не выполняется, машина приступит к проверке следующего сочетания букв. Все это можно записать одной строчкой программы:

Эта строчка и составит тело цикла, по которому лучше всего вести поиск ответа.

Полный перебор всех вариантов потребует 7 ■ 7 ■ 7 = 343 проверки. Для человека это по-прежнему многовато, а для машины — ничуть.

Варьируемых переменных у нас не одна, а целых три; А, С, S (R не в счет, поскольку она выражается через А соотношением R = 10 — А). Чтобы проварьировать все три, надо заключить тело цикла в тройную рамку из операторов FOR ... ТО и NEXT, по одной паре операторов для каждой переменной. Это будет уже три цикла, вложенных друг в друга, как матрешки. А еще раньше надо написать строчку, где величинам Е, Р, U будут присвоены значения 0, 1 и 9 соответственно:

Верен лишь первый вариант. В остальных разным буквам соответствуют одинаковые цифры, а это не

Вводим эту программу в машину, нажимаем клавишу RUN, и за несколько секунд на дисплее появляются четыре варианта ответа:

согласуется с условием задачи.

КАК ОТСЕЯТЬ ЛИШНИЕ РЕШЕНИЯ1.'

Откуда взялись лишние, неверные решения буквенно-числового ребуса? В составленной для его разгадки программе значения переменных не проверялись на совпадение. Исправим этот недочет: если, например, очередное С совпало с A, S или R, пропустим такой вариант и тут же перейдем к строчке, где увеличивается значение С:

It С = A OR С = R OR С = S ГНЕИ 60.

Работая по исправленной программе (см. рисунок), ЭВМ выдаст единственное решение головоломки — верное.


Permanent link:
http://swsys.ru/index.php?page=article&id=1382&lang=en
Print version
The article was published in issue no. № 3, 1989

Perhaps, you might be interested in the following articles of similar topics: