"Информатика (в 2-х частях)", Горячев А.В., Островский С.Л., Паволоцкий А.В., Семёнов А.А., Чернышёва Т.Л., Широков Д.В.
Логические задачи помогают находить неизвестное, опираясь на точные условия, а не на догадки. Для решения нужно выделить факты, обозначить высказывания, проверить их связи и рассмотреть возможные варианты. Таблица истинности удобна, когда условие составлено из нескольких частей, а перебор — когда неизвестных немного и их сочетания можно перечислить. В конце найденный ответ проверяют по всем условиям и убеждаются, что другого подходящего решения нет.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Логическая задача — задача, в которой требуется установить истинность утверждений или определить неизвестные по заданным условиям. Например, нужно выяснить, кто занял первое место, если известны несколько высказываний о результате. Это определение помогает отличать задачу на рассуждение от задачи, где достаточно выполнить вычисление по готовой формуле.
Логическое высказывание — сообщение, которому можно приписать значение «истина» или «ложь». Фраза «Аня пришла первой» является высказыванием, а вопрос «Кто пришёл первым?» — нет; выражение «x пришёл первым» зависит от неизвестного x. Различение нужно, чтобы проверять именно утверждения, а не вопросы или незаполненные фразы.
Таблица истинности — таблица, показывающая значение составного высказывания при всех возможных значениях входящих в него высказываний. Например, для двух частей в ней рассматривают все сочетания: обе истинны, истинна только первая, только вторая или ни одна. Такая запись нужна, чтобы не пропустить случай при проверке сложного условия.
Логическая связка — операция, с помощью которой из простых высказываний составляют более сложные, например «и», «или», «не». Связка задаёт правило, по которому определяется истинность целой фразы по её частям. Если это правило записать явно, становится проще проверять условие и избегать неоднозначного толкования слов.
Решение начинается с точного выделения того, что требуется найти. Затем условие делят на факты и предположения: факты прямо даны, а предположения нужно проверить. Это важно, потому что догадка, принятая за исходное условие, может незаметно исключить правильный ответ. Полезно коротко записать вопрос задачи и отдельно пронумеровать все данные.
Неизвестные удобно обозначать буквами или названиями, а каждое условие записывать отдельно. Например, можно обозначить высказывание «Лена победила» буквой А, а «Максим победил» — буквой Б. Тогда видно, какие сочетания значений вообще возможны и какие нарушают условия. Такая запись уменьшает путаницу, особенно когда в тексте несколько людей и похожих утверждений.
Если части высказывания соединены логическими связками, сначала определяют значения частей, затем применяют правило связки. При «и» обе части должны быть истинны; при логическом «или» достаточно истинности хотя бы одной; «не» меняет истину на ложь и наоборот. Для нескольких частей удобно перечислить все сочетания в таблице истинности. Причина в том, что словесное рассуждение легко пропускает комбинацию, а таблица делает проверку последовательной.
Метод перебора подходит, когда возможных случаев можно перечислить конечное и небольшое число. Составляют список вариантов, затем для каждого проверяют условия и вычёркивают неподходящие. Перебирать нужно систематически: например, сначала фиксировать место одного участника, а потом перечислять возможные места остальных. Полный список гарантирует, что среди проверенных случаев не потерялся ответ.
После отбора нужно снова подставить найденный вариант во все условия. Если хотя бы одно условие не выполняется, вариант неверен, даже если остальные ему подходят. Затем сравнивают его с оставшимися случаями: так выясняют, является ли ответ единственным. Эта проверка нужна не для формальности, а чтобы отличить доказанное решение от первого случайно подошедшего варианта.
| Способ | Что записывают | Когда удобно применять | Как проверяют результат |
|---|---|---|---|
| Словесная запись | Условия задачи и выводы обычными фразами | Когда условий мало и связи между ними просты | Сверяют каждый вывод с исходными условиями |
| Обозначения высказываний и связок | Буквы для утверждений и знаки или слова связок | Когда нужно сократить длинные фразы и проследить их структуру | Проверяют значения частей и правило каждой связки |
| Таблица истинности | Все сочетания значений высказываний и итоговое значение | Когда есть несколько частей, соединённых логическими связками | Находят строки, в которых всё условие истинно |
| Перебор вариантов | Все допустимые сочетания неизвестных | Когда число вариантов можно перечислить без пропусков | Исключают противоречащие условиям случаи и проверяют оставшиеся |
Выбирай способ по устройству задачи: короткие условия можно разобрать словами, а много сочетаний удобнее вынести в таблицу. Таблица истинности проверяет значения высказываний, а таблица соответствий помогает сопоставлять предметы и места. В любом случае способ записи должен позволять увидеть все варианты и причины их исключения.
Задача 1. Два ученика сделали по одному высказыванию о том, кто разбил вазу. Известно, что виноват один из них, а правду сказал только один. Определите виновного. В условии не приведено, что именно сказали ученики, поэтому конкретного ответа пока получить нельзя. Покажем, как проверить достаточность данных, обозначив учеников А и Б и рассмотрев возможные случаи.
Предположим для проверки, что А сказал: «Вазу разбил Б», а Б сказал: «Вазу разбил А». Это не дополнительные данные исходной задачи, а пример возможного набора высказываний.
Если виноват А, то его утверждение ложно, а слова Б истинны. Получается ровно один правдивый ответ, и условие о виновном тоже выполнено.
Если виноват Б, то утверждение А истинно, а слова Б ложны. И этот случай также удовлетворяет обоим известным условиям.
Ответ: по приведённым данным определить виновного нельзя: не указаны сами высказывания, а при приведённом примере подходят оба случая. Для однозначного решения нужны точные слова учеников или дополнительное условие.
Задача 2. Три ученика заняли первое, второе и третье места. По нескольким высказываниям о местах нужно определить результат, если истинно ровно одно высказывание. Сами высказывания в условии не перечислены, поэтому установить конкретное распределение нельзя. Зато можно точно описать проверку, которая позволит решить задачу, когда утверждения известны.
Обозначь учеников буквами А, Б и В, а места — числами 1, 2 и 3. Составь все распределения, в которых каждому достаётся отдельное место: всего таких распределений шесть.
Для каждого распределения проверь высказывания по очереди и отметь истинные. Например, фраза «А занял первое место» истинна только в строках, где А стоит на первом месте.
Оставь только строки, где истинно ровно одно утверждение. Если осталась одна строка, результат найден; если несколько, исходных данных недостаточно для единственного ответа.
Ответ: способ решения — полный перебор шести распределений с подсчётом истинных высказываний. Без самих высказываний нельзя назвать места учеников или проверить единственность результата.
Задача 3. В четырёх ящиках находятся разные предметы. Подсказки сообщают, где предмет находится или не находится; требуется определить расположение всех предметов. Для конкретного расположения нужны сами подсказки, но можно показать, как организовать решение. Таблица соответствий делает исключения заметными и помогает не назначить одному ящику сразу два предмета.
Запиши названия предметов в строках, а номера ящиков — в столбцах. В клетке отмечай возможное соответствие; подсказка «предмет не в ящике 2» запрещает соответствующую клетку.
Когда для предмета остаётся один возможный ящик, зафиксируй это соответствие. Остальные ящики для других предметов проверь с учётом того, что каждый предмет и каждый ящик используются ровно один раз.
Продолжай исключать невозможные сочетания по всем подсказкам. Если остаётся несколько схем, сравни их с каждой подсказкой и не выбирай одну только потому, что она кажется правдоподобной.
Ответ: расположение определяется по таблице исключений, но без текста подсказок его установить невозможно. Готовую схему нужно проверить по каждому указанию и убедиться, что другой схемы не осталось.
Опора на догадку. Решающий заранее выбирает виновного или победителя и замечает только подтверждающие его условия. Так происходит, потому что привычное объяснение кажется убедительным, но оно не заменяет проверку. Проверь себя: подставь в рассуждение противоположный вариант и выясни, не выполняет ли он те же условия.
Неполный перебор. Если рассмотреть не все сочетания, можно пропустить правильный ответ или ошибочно объявить найденный вариант единственным. Часто пропуски возникают, когда варианты перечисляют без понятного порядка. Задай порядок перебора и подсчитай случаи: например, при распределении трёх разных мест между тремя учениками должно быть шесть сочетаний.
Путаница между «и» и «или». При «и» истинными должны быть обе части, а при логическом «или» достаточно хотя бы одной. Ошибка появляется из-за того, что в бытовой речи «или» нередко предполагает выбор только одного варианта. Чтобы проверить себя, отдельно выпиши значения частей и примени правило связки, не полагаясь только на привычное звучание фразы.
Ответ без полной проверки. Подходящий вариант может нарушать одно из условий или иметь альтернативу. Его принимают слишком рано, потому что первая удача выглядит как завершение задачи. Проверь каждую подсказку по очереди, а затем просмотри оставшиеся варианты и установи, что других решений нет.
Для решения таких задач нужно различать утверждения, вопросы и выражения с переменными, а также понимать значения «истина» и «ложь». Эти знания помогают правильно выделять то, что можно проверить. Если принять вопрос или фразу с неизвестным за готовое высказывание, рассуждение начнётся с неверной записи.
Логические связки и таблицы истинности используются дальше при изучении логических выражений и алгоритмов с условиями. Они позволяют проверить, при каких значениях программа выбирает тот или иной путь. Та же привычка — разобрать условие на части и проверить все случаи — полезна при тестировании программ.
С чего начинать решение логической задачи?
Сначала выясни, что именно нужно определить, и выпиши все условия отдельно. Затем обозначь неизвестные и простые высказывания, чтобы не смешивать данные задачи с предположениями.
Когда лучше составить таблицу истинности?
Она полезна, когда несколько простых высказываний соединены связками и нужно проверить все сочетания их истинности. В таблице сразу видно, при каких значениях частей всё условие задачи истинно.
Как убедиться, что перебраны все варианты?
Определи, какие значения может принимать каждая неизвестная, и систематически составь все допустимые сочетания. Для проверки отметь уже рассмотренные случаи и убедись, что ни один не пропущен.
Чем логическая связка «или» отличается от бытового «или»?
В логике «или» обычно истинно, если истинна хотя бы одна часть, в том числе когда истинны обе. В обычной речи «или» часто означает выбор только одного варианта, поэтому смысл связки нужно уточнять по условию.
Почему после нахождения ответа нужно проверять остальные варианты?
Первый подходящий вариант может оказаться не единственным. Проверка остальных случаев показывает, что решение полное, а проверка каждого условия защищает от ошибки в рассуждении.
§ 4–5. Решение логических задач