На Горох
Информатика

Все разные

"Информатика", Рудченко Т.А., Семёнов А.Л. / Под ред. Семёнова А.Л.

Объяснение темы

Кратко о теме

Проверка «все разные» помогает выяснить, нет ли в наборе одинаковых значений. Для этого сравнивают каждую пару: если хотя бы два значения совпали, весь набор не является набором различных значений. У трёх значений нужно проверить три пары, а для большего набора пар становится больше. Результаты проверок соединяют логическим И: условие истинно только тогда, когда каждая пара различается. Такой способ можно выполнить вручную или записать в алгоритме.

Объяснение темы

Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.

Определения и обозначения

Различные значения — это значения, которые не равны друг другу. Если значений несколько, нельзя проверить только одно или два из них: нужно сравнить каждую возможную пару. Например, для A, B и C проверяют A с B, A с C и B с C. Это определение помогает точно задать условие, которое должен проверить человек или алгоритм.

Сравнение на равенство — проверка того, совпадают ли два значения; её результатом служит истина или ложь. Например, проверка A = B истинна, если значения совпадают, и ложна, если они разные. Для поиска различий используют противоположное условие: A ≠ B. Такой результат нужен, чтобы выразить каждую попарную проверку в логической записи.

Логическое И — операция, которая даёт истину, только если истинны все объединённые условия. Если хотя бы одно условие ложно, всё выражение с И ложно. Для проверки «все разные» это подходит, потому что каждая пара должна оказаться различной. Иначе говоря, одного совпадения достаточно, чтобы ответ для всего набора был отрицательным.

Логическое ИЛИ — операция, которая даёт истину, если истинно хотя бы одно из объединённых условий. Например, выражение A ≠ B ИЛИ A ≠ C истинно, когда различается хотя бы одна из этих пар. Оно не подтверждает, что различаются все пары, поэтому для условия «все разные» ИЛИ не заменяет И. Этот термин полезно знать, чтобы не перепутать смысл соединения проверок.

Как это устроено

Чтобы проверить три значения A, B и C, сравнивают каждую пару: A с B, A с C и B с C. Причина в том, что одинаковыми могут оказаться любые два значения, а заранее неизвестно, какие именно. Проверки A с B и B с C, например, не сообщат, равны ли A и C. Поэтому нужны все три сравнения, а не только те, которые кажутся достаточными.

Каждое сравнение на неравенство становится отдельным условием, а требование выполнить все три проверки записывают через логическое И. Получается выражение (A ≠ B) И (A ≠ C) И (B ≠ C). Скобки показывают границы отдельных проверок, а И объединяет их в одно требование. Такая запись удобна тем, что результат всего выражения сразу отвечает на вопрос о наборе целиком.

Если хотя бы одна пара значений совпала, соответствующее условие неравенства окажется ложным. Из-за логического И тогда ложно и всё выражение, даже если две остальные пары различаются. Если же совпадений нет, все три проверки истинны и общий ответ тоже истинен. Так проверка отдельной пары определяет итог для всего набора.

При увеличении числа значений растёт число необходимых попарных сравнений. Это происходит потому, что у каждого значения могут быть совпадения с несколькими другими, а проверка только относительно одного не охватывает остальные пары. Чтобы работать аккуратно, можно перечислять значения по порядку и для каждого сравнивать его со всеми следующими. Тогда каждая пара встречается один раз, и ни одна не пропускается.

Проверку можно выполнить вручную, записать как логическое выражение или представить алгоритмом. При ручной работе удобно составить список пар и отмечать результат каждой проверки. В выражении условия соединяются логическими операциями, а в алгоритме после обнаружения совпадения можно сделать вывод, что все значения различными не являются. Способ записи меняется, но смысл остаётся прежним: проверить все пары и убедиться, что ни одна не совпала.

Проверка трёх значений на различие

Пара значенийУсловие различияЧто означает ложный результат
A и BA ≠ BA и B совпадают
A и CA ≠ CA и C совпадают
B и CB ≠ CB и C совпадают
Общий результат: все три условия соединены логическим ИХотя бы одна пара совпала

Сначала проверьте каждую пару по строкам таблицы и отметьте, истинно ли условие различия. Затем объедините три результата логическим И. Если все три условия истинны, значения различны; если хотя бы одно ложно, есть совпадение.

Разбор задач

Задача 1. Даны числа 4, 7 и 9. Определите, все ли они различны.

Нужно выяснить, совпадают ли какие-либо два числа, поэтому одного взгляда на часть набора недостаточно: проверим все пары. Числа удобно сравнивать по очереди и отмечать, равны ли они. Если каждая пара различается, условие «все разные» истинно. Если хотя бы одна пара равна, ответ будет отрицательным.

  1. Сравним 4 и 7: они не равны, значит, первая пара различается.
  2. Сравним 4 и 9: числа тоже не равны.
  3. Сравним 7 и 9: эта пара также различается.
  4. Все три проверки дали истину для условия неравенства, поэтому соединённое логическим И условие истинно.

Ответ: да, числа 4, 7 и 9 все различны.

Задача 2. Даны три числа A, B и C. Запишите условие, которое истинно, если все числа различны.

В записи должны присутствовать проверки всех пар, иначе можно пропустить совпадение. Для трёх чисел таких пар три: A и B, A и C, B и C. Каждая проверка должна утверждать, что значения не равны. Поскольку нужны сразу все три результата, соединим условия логическим И.

  1. Для пары A и B запишем A ≠ B.
  2. Для пары A и C запишем A ≠ C.
  3. Для пары B и C запишем B ≠ C.
  4. Объединим проверки: (A ≠ B) И (A ≠ C) И (B ≠ C).

Ответ: условие истинно тогда и только тогда, когда истинны все три сравнения на неравенство.

Задача 3. Даны четыре значения. Опишите алгоритм, который определяет, все ли они различны.

Сравнения только с первым значением недостаточно: например, второе и третье могут совпасть, хотя оба отличаются от первого. Поэтому алгоритм должен охватить каждую пару. Перечислим значения как A, B, C и D и будем проверять пары, не повторяя уже сделанные сравнения. Если найдётся равная пара, дальнейший поиск можно прекратить: ответ уже известен.

  1. Сравнить A с B, C и D.
  2. Сравнить B с C и D, не повторяя уже проверенную пару A–B.
  3. Сравнить C с D, не повторяя пары A–C и B–C.
  4. Если в любой проверке обнаружено равенство, записать результат «не все различны» и закончить. Если равных пар нет, записать «все различны».

Ответ: проверяются шесть пар: A–B, A–C, A–D, B–C, B–D и C–D; набор различен, только если ни одна пара не совпала.

Типичные ошибки

Первая ошибка — сравнить только две пары из трёх и пропустить третью. Так можно не заметить совпадение именно в непроверенной паре, потому что результаты остальных сравнений о ней ничего не говорят. Обычно это происходит, когда считают, что проверки с одним выбранным значением уже охватывают весь набор. Самопроверка: выпишите A–B, A–C и B–C и убедитесь, что в списке есть каждая пара.

Вторая ошибка — соединить условия логическим ИЛИ. При ИЛИ достаточно одной различающейся пары, хотя для ответа «все разные» должны различаться все пары. Путаница возникает из-за того, что обе операции объединяют условия, но требуют разного числа истинных результатов. Проверьте запись на примере: если одна пара совпала, итоговое условие должно быть ложным.

Третья ошибка — проверить, что значения не все равны, вместо того чтобы проверить попарное различие. Например, в наборе 2, 2, 5 значения не все одинаковы, но два из них совпадают. Такое упрощение допускают, смешивая условия «есть хотя бы два разных» и «каждая пара различается». Для самопроверки найдите в наборе все одинаковые пары, а не только сравните крайние значения.

Четвёртая ошибка — для четырёх значений сравнить каждое только с первым. Тогда совпадение второго и третьего или второго и четвёртого может остаться незамеченным. Это кажется достаточным, если думать, что первое значение служит представителем всего набора. Составьте перечень всех шести пар и сверьте его с проверками алгоритма: каждая пара должна встретиться ровно один раз.

Связь с другими темами

Для попарной проверки нужно уметь сравнивать значения и понимать, что результат условия бывает истинным или ложным. При записи проверок пригодится знание логических выражений, а также операций И и ИЛИ: от выбора операции зависит смысл общего результата. В алгоритмах обработки наборов данных этот способ помогает искать повторяющиеся значения. Те же рассуждения применимы не только к числам, но и к другим значениям, которые можно сравнить на равенство.

Что запомнить

  • Для проверки различия нужно сравнить значения попарно.
  • У трёх значений есть три пары для сравнения.
  • Все значения различны, только если различны все пары.
  • Условия попарного различия соединяются логическим И.
  • Для четырёх и более значений нельзя ограничиться сравнением каждого только с первым.

Частые вопросы по теме

Почему недостаточно сравнить только два значения из трёх?

Потому что третье значение может совпасть с одним из первых двух. Например, если сравнить только A с B и A с C, то совпадение B и C может остаться незамеченным. Поэтому проверяют все три пары.

Почему условия попарного различия соединяются логическим И?

Требуется, чтобы различалась каждая пара, а не только одна из них. Логическое И даёт истину, лишь когда истинны все объединённые условия. Если хотя бы одна пара совпала, общий результат будет ложным.

Что будет, если два значения совпадают?

Сравнение этой пары на неравенство даст ложь. Поскольку все проверки соединены логическим И, условие «все значения разные» тоже окажется ложным.

Сколько пар нужно проверить для четырёх значений?

Для четырёх значений нужно проверить шесть пар. Это пары A–B, A–C, A–D, B–C, B–D и C–D; каждую проверяют один раз.

Можно ли проверить различие значений, сравнив каждое только с первым?

Для трёх значений такое сравнение не всегда обнаружит совпадение второго и третьего. Для четырёх и более значений остальные значения тоже могут совпасть между собой. Поэтому нужно сравнить все пары.

Спросить по теме параграфа

Все разные

Эта же тема в других учебниках

Учебник

Оглавление →
Предмет
Информатика
Учебник
"Информатика", Рудченко Т.А., Семёнов А.Л. / Под ред. Семёнова А.Л.