Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Data Structures and Algorithms in C++ 2e (На ру...docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.37 Mб
Скачать

4.3. Простые методы оправдания 181

4.3 Простые методы оправдания

Иногда, мы хотим предъявить претензии об алгоритме, такие как показ, что это правильно или что это бежит быстро. Чтобы строго предъявить такие претензии, мы должны использовать математический язык, и чтобы поддержать такие требования, мы должны оправдать или доказать наши заявления. К счастью, есть несколько простых способов сделать это.

4.3.1 Примером

Некоторые требования имеют универсальную форму, «Есть элемент x в наборе S, который имеет

собственность P.», Чтобы оправдать такое требование, мы только должны произвести особый x в S, у которого есть собственность P. Аналогично, некоторые невероятные требования имеют универсальную форму, «У каждого элемента x в наборе S есть собственность, P.», Чтобы оправдать то такое требование ложный, мы только должны произвести особый x из S, у которого нет собственности P. Такой случай называют контрпримером.

Пример 4.17: профессор Амонгус утверждает что каждое число формы 2i- 1

начало, когда я - целое число, больше, чем 1. Профессор Амонгус неправ.

Оправдание: доказать профессора Амонгуса неправильное, мы находим контрпример.

К счастью, мы не должны выглядеть слишком далекими, для 24- 1 = 15 = 3 5.

4.3.2 Нападение «мятежника»

Другой набор методов оправдания включает использование отрицания. Два

основной такие методы - использование contrapositive и противоречия. Использование contrapositive метода походит на просмотр отрицательного зеркала. Чтобы оправдать заявление, «если p верен, то q верен», мы устанавливаем, что, «если q не верен, то p не верен» вместо этого. Логически, эти два заявления - то же самое, но последний, которого называют contrapositive первого, может быть легче думать о. Пример 4.18: Позвольте a и b быть целыми числами. Если ab даже, то даже или b ровны.

Оправдание: Чтобы оправдать это требование, рассмотрите contrapositive, «Если странного и b странный, то ab странный». Так, предположите = 2i + 1 и b = 2 j + 1 для некоторых целых чисел i и j. Тогда ab = 4i j + 2i + 2 j + 1 = 2 (2i j + я + j) + 1; следовательно, ab странный.

Помимо показа использования contrapositive метода оправдания, предыдущего

пример также содержит применение Закона Деморгэна. Этот закон помогает нам иметь дело с отрицанием, поскольку он заявляет, что отрицание заявления формы «p или q» «не p и не q». Аналогично, это заявляет, что отрицание заявления формы «p и q» «не p или не q».

182 Глава 4. Аналитические инструменты

Противоречие

Другой отрицательный метод оправдания - оправдание противоречием, которое также часто включает Закон Деморгэна использования. В применении оправдания доводом «против» - tradiction техника, мы устанавливаем, что заявление q верно первым, если q ложный и затем показывает, что это предположение приводит к противоречию (такой как 2 = 2 или 1> 3). Достигая такого противоречия, мы показываем, что не последовательный сидят - uation, существует с q быть ложным, таким образом, q должен быть верным. Конечно, чтобы сделать этот вывод, мы должны быть уверены, что наша ситуация последовательна, прежде чем мы предположим, что q ложный.

Пример 4.19: Позвольте a и b быть целыми числами. Если ab странный, то странного и b странный.

Оправдание: Позвольте ab быть странным. Мы хотим показать, что странного и b странный. Так, с надеждой на приведение к противоречию давайте предположим, что противоположное, а именно, предполагает даже, или b ровен. Фактически, без потери общности, мы можем предположить, что даже (так как случай для b симметричен). Тогда = 2i для некоторого целого числа i. Следовательно, ab = (2i) b = 2 (ib), то есть, ab ровен. Но это - противоречие: ab не может одновременно быть четным и нечетным. Поэтому странного и b странный.

4.3.3 Индукция и инварианты петли

Большинство претензий, которые мы предъявляем о продолжительности или пространстве связанный, включает inte-немецкий параметр n (обычно обозначение интуитивного понятия «размера» проблемы). Кроме того, большинство этих требований эквивалентно высказыванию, что некоторое заявление q (n) верно

«для всего n³ 1». Так как это предъявляет претензию о бесконечном наборе чисел, нас

не может оправдать это исчерпывающе прямым способом.

Индукция

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

n³ 1, есть конечная последовательность значений, которая начинается с чего-то известного

быть верным и в конечном счете приводит к показу, что q (n) верен. Определенно, мы начинаем a

оправдание индукцией, показывая, что q (n) верен для n = 1 (и возможно некоторые другие ценности n = 2, 3..., k, для некоторой константы k). Тогда мы оправдываем это, индуктивный «шаг» верен для n> k, а именно, мы показываем, «если q (i) верен, поскольку я <n, тогда q (n) верен». Комбинация этих двух частей заканчивает оправдание индукцией.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]