Логика для всех

  Все выпуски  

Логика для всех


Служба Рассылок Subscribe.Ru проекта Citycat.Ru

"Логика для всех" выпуск No21 oт 2001-06-16

 

Здравствуйте!

В этом выпуске на примере уже разобранной ранее задачи я постараюсь рассказать, о том как ee решить с помощью табличек. Для задач именно с таким количеством "объектов" и "свойств" я подготовила программку на Javascript'e, которая находит ответ перебирая все возможные варианты соответствий. Но прежде чем испытывать эту программку, советую почитать "Инструкцию по эксплуатации", где, кстати, приведен еще один пример подобной задачи. Следующий выпуск рассылки должен выйти в мое отсутсвие. Следующие десять дней компьютер и почта будут находиться далеко от меня (или я далеко от них?), поэтому ответить на письма сразу я не смогу. Но это не значит, что не надо отправлять письма. Пишите!.. С помощью ваших писем мне легче представить образ читателя, которому адресуется рассылка. А письма с ответами особенно приятно читать, когда они начинаются пусть с небольшого, но доброго, искреннего приветствия. И конечно же, я буду рада прочитать все письма, отправленные в день, традиционно называемый самым длинным в году (день летнего солнцестояния), но, к сожалению, я не смогу их прочитать в тот же день...


Напомню условия:

Четыре девушки

Марина, Лариса, Жанна и Катя умеют играть на разных инструментах (пианино, виолончели, гитаре, скрипке), но каждая только на одном. Они же знают иностранные языки (английский, французский, немецкий, испанский), но каждая только один. Известно:

  1. Девушка, которая играет на гитаре, говорит по-испански.
  2. Лариса не играет ни на скрипке, ни на виолончели и не знает английского языка.
  3. Марина не играет ни на скрипке, ни на виолончели и не знает ни немецкого, ни английского языка.
  4. Девушка, которая говорит по-немецки, не играет на виолончели.
  5. Жанна знает французский язык, но не играет на скрипке.

Кто на каком инструменте играет? Кто какой знает язык?


Подготовим табличку:

 скрипка-------+   +-------английский
 гитара------+ |   | +-----французский
 виолончель+ | |   | | +---немецкий
 пианино-+ | | |   | | | +-испанский
         | | | |   | | | |
 ========|=|=|=|===|=|=|=|==
 Марина| - - - - | - - - - |
 Лариса| - - - - | - - - - |
 Жанна | - - - - | - - - - |
 Катя  | - - - - | - - - - |
 ===========================
 англ. | - - - - |
 фран. | - - - - |
 нем.  | - - - - |
 исп.  | - - - - |
 =================

Приведем ее к слегка сокращенной форме:

  |инструмент|  язык  |
  |_________|_________|
  | п|в|г|с | a|ф|н|и |
 ======================
 М| - - - - | - - - - |
 Л| - - - - | - - - - |
 Ж| - - - - | - - - - |
 К| - - - - | - - - - |
 ======================
 а| - - - - |
 ф| - - - - |
 н| - - - - |
 и| - - - - |
 ============

И начинаем заносить в нее, все, что известно:


1. Девушка, которая играет на гитаре, говорит по-испански.

  | п|в|г|с | a|ф|н|и |
 ======================
 М| - - - - | - - - - |
 Л| - - - - | - - - - |
 Ж| - - - - | - - - - |
 К| - - - - | - - - - |
 ======================
 а| - - o - |
 ф| - - o - |
 н| - - o - |
 и| o o 1 o |
 ============

На пересечении "и" и "г" ставим "1", а все остальные "клетки" в соответствующей строке и колонке заполняются "о".


2. Лариса не играет ни на скрипке, ни на виолончели и не знает английского языка.

  | п|в|г|с | a|ф|н|и |
 ======================
 М| - - - - | - - - - |
 Л| - O - O | O - - - |
 Ж| - - - - | - - - - |
 К| - - - - | - - - - |
 ======================
 а| - - o - |
 ф| - - o - |
 н| - - o - |
 и| o o 1 o |
 ============

В строке "Л" ставим "О" на пересечениях с "в", "c", "a".


3. Марина не играет ни на скрипке, ни на виолончели и не знает ни немецкого, ни английского языка.

  | п|в|г|с | a|ф|н|и |
 ======================
 М| - O - O | O - O - |
 Л| - O - O | O - - - |
 Ж| - - - - | - - - - |
 К| - - - - | - - - - |
 ======================
 а| - - o - |
 ф| - - o - |
 н| - - o - |
 и| o o 1 o |
 ============

Похожая процедура для строки "М".


4. Девушка, которая говорит по-немецки, не играет на виолончели.

  | п|в|г|с | a|ф|н|и |
 ======================
 М| - O - O | O - O - |
 Л| - O - O | O - - - |
 Ж| - - - - | - - - - |
 К| - - - - | - - - - |
 ======================
 а| - - o - |
 ф| - - o - |
 н| - O o - |
 и| o o 1 o |
 ============

"О" на пересечении "н" и "в".


5. Жанна знает французский язык, но не играет на скрипке.

  | п|в|г|с | a|ф|н|и |
 ======================
 М| - O - O | O o O - |
 Л| - O - O | O o - - |
 Ж| - - - O | o 1 o o |
 К| - - - - | - o - - |
 ======================
 а| - - o - |
 ф| - - o - |
 н| - O o - |
 и| o o 1 o |
 ============

"1" на пересечении "Ж" и "ф" (в остальных "о"), и "О" на песечении "Ж" и "c".


Все условия занесены в таблицу, начинаем делать выводы.

  | п|в|г|с | a|ф|н|и |
 ======================
 М| - O - O | O o O 1 |
 Л| - O - O | O o 1 - |
 Ж| - 1 - O | o 1 o o |
 К| - - - 1 | 1 o - - |
 ======================
 а| - - o - |
 ф| - - o - |
 н| - O o - |
 и| o o 1 o |
 ============

В первом квадрате, в столбце "c" осталось только одно возможное место для "1" (строка "К"). Соответственно, только одно место для "1" в столбце "в" (строка "Ж"). Действуя аналогичным образом, находим расположение всех "1" во втором квадрате.


  | п|в|г|с | a|ф|н|и |
 ======================
 М| - O - O | - - - 1 |
 Л| - O - O | - - 1 - |
 Ж| o 1 o O | - 1 - - |
 К| o o o 1 | 1 - - - |
 ======================
 а| - - o 1 |
 ф| - 1 o - |
 н| 1 O o - |
 и| o o 1 o |
 ============

Убираем "все лишнее" во втором квадрате, а строки "Ж" и "К" в первом квадрате дополняем "о".
Зная о соответствии "Ж"-"в" и "Ж"-"ф", ставим "1" на пересечении "в"-"ф".
Аналогично для "K"-"c"-"a".
В третьем квадрате остается место только для "н"-"п".


Два последних штриха, и...

  | п|в|г|с | a|ф|н|и |
 ======================
 М| - O 1 O | - - - 1 |
 Л| 1 O - O | - - 1 - |
 Ж| o 1 o O | - 1 - - |
 К| o o o 1 | 1 - - - |
 ======================
 а| - - - 1 |
 ф| - 1 - - |
 н| 1 - - - |
 и| - - 1 - |
 ============

...oтвет очевиден...


До новой рассылки!

 

  Вопросы, пожелания и замечания пишите на ntl@yandex.ru.

Natalia

  http://ntl.narod.ru/logic - Логика для всех

  http://www.webboard.ru/wb.php?board=8701 - Головоломный форум

Использование материалов рассылки без согласования с ведущим рассылки не одобряется.

 

Приглашаю к сотрудничеству рекламодателей и спонсоров.

Архив Рассылки Рассылка 'Логика для всех' Статистика Рассылки


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться Рейтингуется SpyLog

В избранное