proekt 7

advertisement
БОУ ОО СПО Орловский техникум технологии и предпринимательства
имени В.А.Русанова
УЧЕБНОЕ ПОСОБИЕ ПО ДИСЦИПЛИНЕ
«ИНФОРМАТИКА И ИКТ»
ПО ТЕМЕ:
ОРЕЛ – 2013 г.
Как научиться решать логические задачи?
Предисловие.
Решать логические задачи очень
увлекательно. В них вроде бы нет никакой
математики - нет ни чисел, ни функций, ни
треугольников, ни векторов, а есть только
лжецы и мудрецы, истина и ложь. В то же
время дух математики в них чувствуется
ярче всего - половина решения любой
математической задачи (а иногда и гораздо
больше половины) состоит в том, чтобы
как следует разобраться в условии,
распутать все связи между участвующими
объектами.
Есть люди, для которых решение логической задачи - увлекательная, но
несложная задача. Их мозг как луч прожектора сразу освещает все
хитроумные построения, и к правильному ответу он приходит необычайно
быстро. Замечательно, что при этом он и не могут объяснить, как они
пришли к решению. "Ну это же очевидно, ясно", - говорят они. "Ведь если ...
" - и они начинают легко распутывать клубок противоречивых высказываний.
"Действительно, все ясно", - говорит слушатель, огорченный тем, что он сам
не увидел очевидного рассуждения. Согласитесь, что такое же ощущение
часто возникает при чтении детективов.
Итак, мы узнаем, как разными способами можно решать логические задачи.
Оказывается таких приемов несколько, они разнообразны и каждый из них
имеет свою область применения. На этой странице вы узнаете кое-что об
этих приемах. Познакомившись подробно, поймете в каких случаях удобнее
использовать тот или другой метод. Вам придется познакомиться с
основными понятиями направления "математики без формул" математической логики, узнать о создателях этой науки и об истории ее
становления.
Как научиться решать логические задачи?
Многие люди только мыслят, что мыслят. Им неприятен мыслительный
процесс:для этого нужен навык и известные усилия, а зачем усилия, когда
можно без.
Огден Неш
Логические или нечисловые задачи составляют обширный класс
нестандартных задач. Сюда относятся, прежде всего, текстовые задачи, в
которых требуется распознать объекты или расположить их в определенном
порядке по имеющимся свойствам. При этом часть утверждений условия
задачи может выступать с различной истинностной оценкой (быть истинной
или ложной). К классу логических задач относятся также задачи на
переливания и взвешивания (фальшивые монеты и т.п.).
Вам предстоит:
 Познакомиться с основными способами решения
логических задач;

На примерах конкретных задач выяснить: Какие методы
более эффективные?
Основные приемы и методы решения логических задач





Теория, мой друг, суха, но зеленеет жизни древо.
И.В.Гете
Известно несколько различных способов решения логических задач:
Метод рассуждений;
Метод таблиц;
Метод графов;
Метод блок-схем;
Метод бильярда.
Остановимся отдельно на каждом из выделенных методов, иллюстрируя их
примерами решения конкретных задач.
Метод первый: Метод рассуждений
Способ рассуждений - самый примитивный способ. Этим способом
решаются самые простые логические задачи. Его идея состоит в том, что мы
проводим рассуждения, используя последовательно все условия задачи, и
приходим к выводу, который и будет являться ответом задачи.
Познакомиться с этим методом можно на следующем примере.
Задача Перед началом Турнира Четырех болельщики высказали следующие
предположения по поводу своих кумиров:
А) Макс победит, Билл – второй;
^ В) Билл – третий, Ник – первый;
С) Макс – последний, а первый – Джон.
Когда соревнования закончились, оказалось, что каждый из болельщиков был
прав только в одном из своих прогнозов. Какое место на турнире заняли
Джон, Ник, Билл, Макс? (В ответе перечислите подряд без пробелов места
участников в указанном порядке имен.)
Решение (преобразование логических выражений):
1.
2.
применим к этой задаче формальный аппарат математической логики
каждый из трех болельщиков высказал два утверждения, всего получилось
6; обозначим их так:
A: М1 = «Макс – первый», Б2 = «Билл – второй»
B: Н1 = «Ник – первый», Б3 = «Билл – третий»
C: Д1 = «Джон – первый», М4 = «Макс – четвертый»
3.
теперь как-то нужно записать, что у каждого одно высказывание верно, а
второе неверно; скажем, для «A» это равносильно двум следующим
условиям, которые должны выполняться одновременно:
A: М1 + Б2 = 1, (по крайней мере одно из двух условий истинно)
М1 · Б2 = 0 (по крайней мере одно из двух условий ложно)
аналогично для остальных болельщиков1
B: Н1 + Б3 = 1, Н1 · Б3 = 0
С: Д1 + М4 = 1, Д1 · М4 = 0
4.
перемножим первые условия из каждой пары; поскольку все эти суммы
равны 1, получаем
(М1 + Б2) · (Н1 + Б3) · (Д1 + М4) = 1
5.
раскроем произведение первых двух скобок
(М1 · Н1 + М1 · Б3 + Б2 · Н1 + Б2 · Б3) · (Д1 + М4) = 1
6.
попробуем упростить «большую» скобку»; во-первых, два человека (Макс и
Ник) не могут одновременно находиться на первом месте, поэтому М1 · Н1 =
0
7.
во-вторых, один человек (Билл) не может одновременно находиться и на
втором, и на третьем месте, поэтому Б2 · Б3 = 0, так что
(М1 · Б3 + Б2 · Н1) · (Д1 + М4) = 1
8.
снова перемножим скобки и получим
М1 · Б3 · Д1 + М1 · Б3 · М4 + Б2 · Н1 · Д1 + Б2 · Н1 · М4 = 1
9.
так же, как и в п. 6-7, находим, что М1 · Д1 = 0, М1 · М4 = 0 и Н1 · Д1 = 0,
так что
Б2 · Н1 · М4 = 1 (*)
10. из последнего уравнения следует, что Б2 = 1 (Билл на втором месте), Н1 = 1
(Ник – на первом) и М4 = 1 (Макс – на четвертом), а Джону осталось третье
11. таким образом, правильный ответ 3124
12. обратите внимание, что вторые условия (М1 · Б2 = 0, Н1 · Б3 = 0 и Д1 · М4
= 0 ) мы даже нигде не использовали, все получилось «само собой»,
поскольку уравнение (*) имеет единственное решение.
Возможные проблемы:
o
o
легко запутаться в обозначениях, например, вместо Б1 написать М1 и
т.п.
преобразования хотя и простые, но длинные, поэтому можно легко
запутаться в них, особенно в условиях стресса
Метод второй: Метод таблиц
Основной прием, который используется при решении текстовых
логических задач, заключается в построении таблиц. Таблицы не только
позволяют наглядно представить условие задачи или ее ответ, но в
значительной степени помогают делать правильные логические выводы в
ходе решения задачи.
Решение:
1.запишем высказывания трех болельщиков в форме таблицы (заголовок
строки обозначает место в турнирной таблице):
A
B
C
1
Макс
Ник
Джон
2
Билл
Билл
3
Макс
4
считая, что два человека не могут оказаться на одном месте, начнем
«раскручивать» эту таблицу с той строчки, где больше всего информации (в
данном случае – с первой)
2. предположим, что Макс действительно занял первое место, как и сказал
«A»; в этом случае
1.




«C» ошибся, поставив на первое место Джона;
учитывая, что каждый один раз угадал, а второй ошибся, получается, что
«C» угадал, что Макс будет на четвертом месте;
но мы предположили, что Макс – на первом месте (а не на четвертом),
следовательно, получили противоречие; это значит, что Макс все-таки не на
первом месте
таким образом, в первом прогнозе «А» ошибся, это значит, что во втором он
угадал, и Билл действительно занял второе место:
A
B
C
1
Макс
Ник
Джон
2
Билл
3
Билл
Макс
4

так как Билл – второй, он не может быть на третьем месте, поэтому из
прогноза «Б» следует, что Ник – первый:
A
B
C
1
Макс
Ник
Джон
2
Билл
Билл
3
Макс
4

если Ник на первом месте, там не может быть Джон, поэтому из ответов
«С» (среди которых должен быть один верный, и один неверный), сразу
находим, что Макс занял четвертое место:
A
B
C
1
Макс
Ник
Джон
2
Билл
3
4
4.
Билл
Макс
осталось только определиться с Джоном – ему досталось единственное
«свободное» третье место; окончательный список победителей:
1. Ник 2. Билл 3. Джон 4. Макс
места победителей в порядке их перечисления в тексте вопроса: Джон – 3 ,
Ник – 1,
Билл – 2, Макс - 4
6. таким образом, правильный ответ 3124.
5.
Возможные ловушки и проблемы:
o
o
из-за невнимательности есть риск записать места не в том
порядке
из-за невнимательности можно записать не места (как
сказано в этом задании), а первые буквы имен (здесь это будет
неверный ответ, а в каких-то задачах – наоборот, верный); так что
читайте внимательно условие
Метод третий: Метод графов
Граф - один из видов моделей, отражающих взаимодействие
объектов или систем.
Графом называют схему, в которой обозначаются только
наличие объектов (элементов системы) и наличие и вид связи
между объектами.
Задача
Марина, Лариса, Жанна и Катя умеют играть на разных инструментах
(пианино, виолончели, гитаре, скрипке), но каждая только на одном. Они же
знают иностранные языки (английский, французский, немецкий и
испанский), но каждая только один. Известно:
1.
Девушка, которая играет на гитаре, говорит на испанском языке.
2.
Лариса не играет ни на скрипке, ни на виолончели и не знает
английского языка.
3.
Марина не играет ни на скрипке, ни на виолончели и не знает ни
немецкого, ни английского.
4.
Девушка, которая говорит по-немецки, не играет на виолончели.
5.
Жанна знает французский язык, но не играет на скрипке.
Кто на каком инструменте играет и какой иностранный язык знает?
Решение:
Из пятого условия, что Жанна знает французский язык, рисуем стрелку. Из
третьего условия, что Марина не знает ни немецкого, ни английского, а
французский знает Жанна, то Марина знает испанский и рассматривая первое
условие она играет на гитаре. Из условия N2 видим, что Лариса играет на
пианино, т.к. Марина играет на гитаре, а на других инструментах она играть
не умеет, и значит, она говорит по-немецки.
Т.к. Жанна не играет на скрипке, то остается один инструмент, на котором
она может играть это виолончель. Тогда Катя играет на скрипке, и знает
английский язык.
Метод четвертый: Метод блок-схем
Сначала выделяются операции, которые позволяют нам точно определить
действие. Эти операции называются командами. Затем устанавливается
последовательность выполнения выделенных команд.
Эта последовательность оформляется в виде схемы. Подобные схемы
называются блок-схемами и широко используются в программировании.
Составленная блок-схема является программой, выполнение которой может
привести нас к решению поставленной задачи.
Задача. Имеются два сосуда — трехлитровый и пятилитровый. Нужно,
пользуясь этими сосудами, получить 1, 2, 3, 4, 5, 6, 7 и 8 литров воды. В
нашем распоряжении водопроводный кран и раковина, куда можно выливать
воду.
Решение.
Перечислим все возможные операции, которые могут быть использованы
нами, и введем для них следующие сокращенные обозначения: НБ —
наполнить больший сосуд водой из-под крана; НМ — наполнить меньший
сосуд водой из-под крана; ОБ — опорожнить больший сосуд, вылив воду в
раковину; ОМ — опорожнить меньший сосуд, вылив воду в раковину; Б→М
— перелить из большего в меньший, пока больший сосуд не опустеет или
меньший сосуд не наполнится; М→Б — перелить из меньшего в больший,
пока меньший сосуд не опустеет или больший сосуд не наполнится. Выделим
среди перечисленных команд только три: НБ, Б→М, ОМ. Кроме этих трех
команд рассмотрим еще две вспомогательные команды: Б = 0 ? —
посмотреть, пуст ли больший сосуд; М = З ? — посмотреть, наполнен ли
малый сосуд.
В зависимости от результатов этого осмотра мы переходим к выполнению
следующей команды по одному из двух ключей - "да" или "нет". Такие
команды в программировании принято называть командами "условного
перехода" и изображать в блок-схемах в виде ромбика с двумя ключамивыходами.
Договоримся теперь о последовательности выполнения выделенных команд.
После Б→М будем выполнять ОМ всякий раз, как меньший сосуд
оказывается наполненным, и НБ всякий раз, как больший сосуд будет
опорожнен. Последовательность команд изобразим в виде блок-схемы (Рис.
1). Начнем выполнение программы. Будем фиксировать, как меняется
количество воды в сосудах, если действовать по приведенной схеме.
Результаты оформим в виде таблицы (табл.).
Дальше эта последовательность будет полностью повторяться. Из таблицы
видим, что количество воды в обоих сосудах вместе образует следующую
последовательность: 0, 5, 2, 7, 4, 1, 6, 3, 0 и т.д. Таким образом, действуя по
приведенной схеме, можно отмерить любое количество литров от 1 до 7.
Чтобы отмерить еще и 8 литров, надо наполнить оба сосуда.
Метод пятый: Метод бильярда
Сначала выделяются операции, которые позволяют нам точно определить
действие. Эти операции называются командами. Затем устанавливается
последовательность выполнения выделенных команд.
Задачи на переливание жидкостей можно очень легко решать, вычерчивая
бильярдную траекторию шара, отражающегося от бортов стола, имеющего
форму параллелограмма. Рассмотрим туже задачу, что и в предыдущем
разделе (Метод блок-схем).
Задача. Имеются два сосуда — трехлитровый и пятилитровый. Нужно,
пользуясь этими сосудами, получить 1, 2, 3, 4, 5, 6, 7 и 8 литров воды. В
нашем распоряжении водопроводный кран и раковина, куда можно выливать
воду.
Решение. В рассматриваемой задаче стороны параллелограмма должны
иметь длины 3 и 5 единиц. По горизонтали будем откладывать количество
воды в литрах в 5-литровом сосуде, а по вертикали – в 3-литровом сосуде. На
всем параллелограмме нанесена сетка из одинаковых равносторонних
треугольников (см.рис.1).
Бильярдный шар может перемещаться только вдоль прямых, образующих
сетку на параллелограмме. После удара о стороны параллелограмма шар
отражается и продолжает движение вдоль выходящего из точки борта, где
произошло соударение. При этом каждая точка параллелограмма, в которой
происходит соударение, полностью характеризует, сколько воды находится в
каждом из сосудов.
Пусть шар находится в левом нижнем углу и после удара начнет
перемещаться вверх вдоль левой боковой стороны параллелограмма до тех
пор, пока не достигнет верхней стороны в точке А. Это означает, что мы
полностью наполнили водой малый сосуд. Отразившись упруго, шар
покатится вправо вниз и ударится о нижний борт в точке В, координаты
которой 3 по горизонтали и 0 по вертикали. Это означает, что в большом
сосуде 3 литра воды, а в малом сосуде воды нет, то есть мы перелили воду из
малого сосуда в большой сосуд.
Прослеживая дальнейший путь шара и записывая все этапы его движения в
виде отдельной таблицы (табл.1), в конце концов, мы попадаем в точку Н,
которая соответствует состоянию, когда малый сосуд пуст, а в большом
сосуде 4 литра воды. Таким образом, получен ответ и указана
последовательность переливаний, позволяющих отмерить 4 литра воды. Все
8 переливаний изображены схематически в таблице.
Является ли это решение самым коротким? Нет, существует второй путь,
когда воду сначала наливают в пятилитровый сосуд. Если на диаграмме шар
из точки О покатится вправо по нижней стороне параллелограмма и затем,
отразившись от правой боковой стороны, в точку 2 на верхней стороне
параллелограмма и т.д., то получим более короткое решение задачи. Можно
показать, что полученное решение с 6 переливаниями уже является самым
коротким.
Требуется немного сообразительности, чтобы применить метод бильярда к
любой задаче о переливании жидкости с помощью не более чем трех
сосудов. Остановимся отдельно на случае задачи с тремя сосудами.
Рассмотрим следующую интерпретацию предыдущей задачи.
Восьмилитровый сосуд до краев наполнен водой. С помощью двух пустых
сосудов емкостью 3 и 5 литров надо поровну разделить в два больших
сосуда. Диаграмма для этой задачи точно такая же – параллелограмм со
сторонами 5 и 3 единицы. Чтобы фиксировать количество воды в третьем,
восьмилитровом сосуде, дополнительно проводим главную диагональ
параллелограмма (рис.2). Она делится наклонными прямыми на 8 частей.
Отметив точку деления, начиная с верхней правой вершины
параллелограмма, получаем возможность фиксировать количество воды в
третьем, восьмилитровом, сосуде.
Первые две координаты любой точки параллелограмма, куда может попасть
бильярдный шар, определяются, как и выше, а третья координата равна
величине отрезка, отсекаемого на главной диагонали соответствующей
наклонной. Как и раньше, шар начинает движение от точки О. Совсем
несложно нарисовать его траекторию. С ее помощью получим решение с
числом переливаний, равным 7. (таб. 2)
Если объемы двух меньших сосудов не имеют общего делителя (т.е. взаимно
просты), а объем третьего сосуда больше или равен сумме объемов двух
меньших, то с помощью этих трех сосудов можно отмерить любое целое
число литров, начиная с 1 литра и кончая объемом среднего сосуда. Имея,
например, сосуды вместимостью 15, 16 и 31 литр, вы сумеете отмерить
любое количество воды от 1 до 16 литров. Такая процедура невозможна, если
объемы двух меньших сосудов имеют общий делитель. Когда объем
большего сосуда меньше суммы объемов двух других, возникают новые
ограничения. Если, например, объемы сосудов равны 7, 9 и 12 литров, то у
параллелограмма надо отсечь верхний правый угол (рис. 3). Это происходит
потому, что на диагонали должно быть отложено не более 12 единиц. В этом
случае главную диагональ, на которой будет фиксироваться количество воды
в самом большом сосуде, полезно вынести за пределы "усеченного
параллелограмма", чтобы не загромождать рисунок. В остальном правила
игры в бильярд остаются прежними.
Отметим, что бильярдный шар может попасть в любую точку от 1 до 9, за
исключением точки 6. Легко видеть, что точки с цифрой 6 образуют на
диаграмме правильный треугольник, и мы не можем никак попасть на этот
треугольник из любой другой точки, лежащей вне него (рис. 3). Таким
образом, несмотря на то, что 7 и 9 взаимно просты, отмерить 6 литров воды
оказывается невозможным из-за того, что самый большой сосуд имеет
слишком маленький объем. Отметим также, что обобщение метода
математического бильярда на случай четырех сосудов сводится к движению
шара в пространственной области (параллелепипеде). Но возникающие при
этом трудности изображения траекторий делают метод неудобным.
Источники:
1. http://wiki.iteach.ru/index.php/Способы_решения_логических_задач
2. http://book.kbsu.ru/theory/chapter5/1_5_13.html
3. http://school4ul.narod.ru/inf_log_zad.htm
Download