Решение: Параметр в условии программы
Ниже приведена программа, записанная на пяти языках программирования. Программа вводит целые числа $s$, $t$ и $A$, а затем выводит «YES», если выполняется условие $s > 10$ или $t > A$, и выводит «NO» в противном случае.
1s = int(input()) 2t = int(input()) 3A = int(input()) 4if (s > 10) or (t > A): 5 print("YES") 6else: 7 print("NO")
Было проведено 9 запусков программы, при которых в качестве значений переменных $s$ и $t$ вводились следующие пары чисел: $(1; 2)$; $(11; 2)$; $(1; 12)$; $(11; 12)$; $(-11; -12)$; $(-11; 12)$; $(-12; 11)$; $(10; 10)$; $(10; 5)$. Укажите наименьшее целое значение параметра $A$, при котором для указанных входных данных программа напечатает «YES» семь раз.
Решение по шагам
4 шагаУсловие $s > 10$ выполняется для пар $(11; 2)$ и $(11; 12)$. Поэтому они дают два вывода «YES» при любом значении $A$.
$$2$$Чтобы всего получилось семь выводов «YES», среди остальных семи пар условие $t > A$ должно выполняться ровно пять раз.
$$7 - 2 = 5$$Для остальных пар значения $t$ равны $2$, $12$, $-12$, $12$, $11$, $10$, $5$. При $A = 2$ неравенство $t > A$ выполняется для пяти значений: $12$, $12$, $11$, $10$ и $5$.
$$12 > 2,\ 12 > 2,\ 11 > 2,\ 10 > 2,\ 5 > 2$$При меньшем целом значении $A$ условие выполнится ещё хотя бы для одной пары, поэтому количество выводов «YES» будет больше семи.
$$A = 2$$Где здесь ошибаются
Не учитывать, что условие содержит логическую операцию «или».
Считать только пары, для которых выполняется $t > A$, и не учитывать два вывода «YES» из-за условия $s > 10$.
Выбрать значение $A = 5$, при котором среди оставшихся пар условие выполняется только четыре раза.