Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ShPOR1_16_na_1.docx
Скачиваний:
15
Добавлен:
23.09.2019
Размер:
1.45 Mб
Скачать

№5 Предикаты и кванторы

Предикатомназывается утверждение, содержащее переменные, принимающее значение истины или лжи в зависимости от значений переменных. Например, выражение «х – целое число, удовлетворяющее соотношению х = х2» является предикатом, поскольку оно истинно при х=0 или х=1 и ложно в любом другом случае.

. Однако существуют логические операторы, называемые кванторами,применение которых к предикатам превращает последние в ложные или истинные высказывания.

Выражения «для всех» и «существует» называются кванторами и обозначаются, соответственно,  и .

Пример 2.7. Обозначим через Р(х) предикат «х – целое число и х2=16». Выразите словами высказывание х:Р(х) и определите его истинностное значение.

Решение. Высказывание х:Р(х) означает, что найдется целое число х, удовлетворяющее уравнению х2=16. Высказывание, конечно, истинно, поскольку уравнение х2=16 превращается в верное тождество при х=4. Кроме того, х= –4 – также решение данного уравнения. Однако нам не требуется рассуждать о знаке переменной х, чтобы проверить истинность высказывания х:Р(х).Использование квантора сделает этот же предикат ложью.

Для общего предиката Р(х) есть следующие логические эквивалентности: (в символьной форме логически эквивалентные высказывания обозначаются значком «»):

не х:Р(х) х не Р(х).

не х:Р(х)х: Р(х) Как показывает следующий пример, некоторые трудности возникают, когда в высказывании участвует более одного квантора.Пример 2.9. Предположим, что х и у – вещественные числа, а Р(х,у) обозначает предикат х+у=0. Выразите каждое из высказываний словами и определите их истинность.

(а) х у : Р(х,у);(б) у : х Р(х,у).

Решение.(а) Высказывание xy : P(x,у) говорит о том, что для любого вещественного числа х найдется такое вещественное число у, что х+у=0. Оно, очевидно, верно, поскольку какое бы число х мы ни взяли, число у=–х обращает равенство х+у=0 в верное тождество.

(б) Высказваниеу:хР(х,у) читается следующим образом: существует такое вещественное число у, что для любого вещественного числа х выполнено равенство х+у=0. Это, конечно, не так:не существует вещественного числа у, обладающего указанным свойством. Следовательно, высказывание ложно.

6 Методы доказательств

Существует несколько стандартных типов доказательств:

  1. Прямое рассуждение. Предполагаем, что высказывание Ристинно и показываем справедливость Q. Такой способ доказательства исключает ситуацию, когда Ристинно, aQ– ложно, поскольку именно в этом и только в этом случае импликация Q) принимает ложное значение.

  2. Обратное рассуждение. Предполагаем, что высказывание Qложно и показываем ошибочность Р. То есть, фактически, прямым способом проверяем истинность импликации ((неQ)(неР)), что, как было доказано ранее, логически эквивалентно истинности исходного утверждения (РQ).

  3. Метод «от противного». Предположив, что высказывание Ристинно, aQложно, используя аргументированное рассуждение, получаем противоречие. Этот способ опять-таки основан на том, что импликация (РQ)принимает ложное значение только тогда, когда Р истинно, aQложно.

Пример 2.10. Покажите прямым способом рассуждений, что произведение худвух нечетных целых чисел х иувсегда нечетно.

Решение. Прежде всего заметим, что любое нечетное число, и в частности х, можно записать в виде х=2т+1, где т – целое число. Аналогично, у=2п+1 с некоторым целым п. Значит, произведение

ху = (2m+1)(2n+1) = 4тп+2т+2п+1 = 2(2тп+т+п)+1

тоже является нечетным числом.

Пример 2.12. Методом «от противного» покажите, что корень уравнения х2=2 является иррациональным числом, т.е. не может быть записан в виде дроби с целыми числителем и знаменателем.Решение.//Здесь нам следует допустить, что корень х уравнения х2=2 рационален, т.е. записывается в виде дроби х=m/n с целыми т ип, причем п0. Предположив это, нам необходимо получить противоречие либо с предположением, либо с каким-то ранее доказанным фактом.Как известно, рациональное число неоднозначно записывается в виде дроби. Например, x = m/n = 2m/2n = 3m/3n=… Для однозначности записи будем считать, что mи nнеимеют общих делителей.//Итак, предполагаем дополнительно, что дробь х = m/n несократима (m и п не имеют общих делителей). По условию число х удовлетворяет уравнению х2= 2. Значит, (m/n)2 = 2, откуда т2= 2п2. Из последнего равенства следует, что число т2четно. Следовательно, т тоже четно (доказано в примере 2.11) и может быть представлено в виде т = 2р для какого-то целого числа р. Подставив эту информацию в равенство т2=2n2, мы получим, что 4р2= 2п2, т. е. п2= 2. Но тогда птоже является четным числом. Таким образом, мы показали, что как т, таки п– четные числа. Поэтому они обладают общим делителем 2. Если же теперь вспомнить, что мы предполагали отсутствие общего делителя у числителя и знаменателя дроби m/n, то увидим явное противоречие.

Найденное противоречие приводит нас к однозначному выводу: решение уравнения х2=2 не может быть рациональным числом, т.е. оно иррационально.

7 Математическая индукция

Компьютерную программу называют корректной, если она делает то, что указано в ее спецификации.

Проверка корректности алгоритма , нуждается в довольно мощном методе доказательства, «математическая индукция». Докажем корректность алгоритма, определяющего максимальный элемент из набора натуральных чисел a1, a2, a3, …, an:

begin

j:=0;

М:=0;

whilej<ndo

begin

j:=j+1;

M:=max(M, aj);

end

end

Действие алгоритма на наборе данных: а1=4, а2=7, а3=3 и а4=8 прослежено в табл. 2.7.

Таблица.7

J

M

j<4?

0

0

Да

1

4

Да

2

7

Да

3

7

Да

4

8

Нет



будет ли алгоритм работать правильно при любом вводимом наборе чисел длины n?

Рассмотрим вводимый набор a1, a2, a3, …, an длины пи обозначим через Mk значение переменной М после k-гопрохода цикла.

  1. Если мы вводим набор a1 длины 1, то цикл сделает только один проход и М присвоится наибольшее значение из 0 и a1,которым, очевидно, будет a1(натуральные числа больше 0). В этом простом случае вывод будет правильным.

  2. Если после k-гопрохода цикла Mk– наибольший элемент из набора a1, a2, a3, …, ak, то после следующего прохода Mk+1 будет равно max(Mk, ak+1), т.е. максимальному элементу набора a1, a2, a3, …, ak, ak+1.

В пункте 1 мы показали, что алгоритм работает правильно при любом вводимом наборе длины 1. Поэтому согласно пункту 2, он будет правильно работать и на любом наборе длины 2. Вновь применяя пункт 2 рассуждений, мы убеждаемся, что алгоритм работает правильно и на любых наборах длины 3, и т.д. Таким образом, алгоритм правильно работает на любых наборах произвольной длины n, т.е. он корректен.

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

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