Решение: Подсчёт результатов программы
Ниже приведена программа, записанная на пяти языках программирования. Условие вывода «YES»: $s < 5$ и не выполняется условие $t > 3$. Было проведено 9 запусков программы, при которых в качестве значений переменных $s$ и $t$ вводились следующие пары чисел: $(2, -2)$; $(-2, 4)$; $(4, 1)$; $(-12, 5)$; $(0, -7)$; $(1, 3)$; $(8, 2)$; $(3, 0)$; $(23, 1)$. Сколько было запусков, при которых программа напечатала «NO»?
1s = int(input()) 2t = int(input()) 3if (s < 5) and not (t > 3): 4 print("YES") 5else: 6 print("NO")
Решение по шагам
3 шагаОтрицание условия $t > 3$ означает условие $t \leq 3$. Поэтому программа печатает «YES», если одновременно выполняются условия $s < 5$ и $t \leq 3$.
$$s < 5 \land t \leq 3$$Проверяем пары: «YES» получается для $(2, -2)$, $(4, 1)$, $(0, -7)$, $(1, 3)$ и $(3, 0)$ — всего 5 запусков.
$$N_{YES} = 5$$Всего было 9 запусков, значит количество запусков с результатом «NO» равно:
$$N_{NO} = 9 - 5 = 4$$Где здесь ошибаются
Неверно трактуют отрицание условия $t > 3$ и считают, что требуется $t > 3$.
Не учитывают, что оба условия в конструкции with AND должны выполняться одновременно.
Считают только количество запусков с результатом «YES», не вычитая его из общего числа запусков.