Для какого наибольшего целого неотрицательного числа А выражение (x · y < 100) ∨ (y ≥ A) ∨ (x > A) тождественно истинно, т. е. принимает значение 1 при любых целых неотрицательных x и y?
Хочу создать код на Python, который даст верный ответ
Целая часть от деления Остаток от деления12 div 2 = 6 12 mod 2 = 06 div 2 = 3 6 mod 2 = 03 div 2 = 1 3 mod 2 = 11 div 2 = 0 1 mod 2 = 1Остаток от деления записываем в обратном порядке. Получаем число в 2-ой системе счисления: 1100 12 = 1100|2 Для перевода дробной части числа последовательно умножаем дробную часть на основание 2. В результате каждый раз записываем целую часть произведения. 0.75*2 = 1.5 (целая часть 1) 0.5*2 = 1 (целая часть 1) 0*2 = 0 (целая часть 0) 0*2 = 0 (целая часть 0) Получаем число в 2-ой системе счисления: 1100 0.75 = 1100|2 В итоге получаем число: 1100.1100|2
Всего номеров четыре. Номера Пети и Коли в сумме меньше четырех, следовательно ни Петя, ни Коля не могут быть ни четвертым, ни третьим, поэтому у Пети и Коли номера 1 и 2 (только 1+2=3, что меньше четырех). Значит, Гриша не первый и не второй, т.е. его номер больше, чем у Пети и ответ - "да".
Условие, что последний (четвертый) стоит после Коли - лишнее, оно ничего не дает. Гриша стоит перед Васей позволяет нам лишь сделать вывод, что Гриша третий, а Вася четвертый, но и этого по условию задачи нам не нужно.
Можно проанализировать выражение, и заметить, что ответом служит корень квадратный из 100 (10), но как я понял, тебе нужно без всяких замарочек
Троеточия за место табов
def f(x, y, A):
... return (x * y < 100) or (y >= A) or (x > A)
def F(A):
... for x in range(200):
... ... for y in range(200):
... ... ... if f(x, y, A) == 0:
... ... ... ... return False
... return True
for i in range(200):
... if F(i):
... ... print(i)