Ошибка.
Попробуйте повторить позже
Обозначим через поразрядную конъюнкцию неотрицательных целых чисел и .
Так, например, .
Для какого наименьшего натурального числа формула
тождественно истинна (т. е. принимает значение 1 при любом неотрицательном целом значении переменной )?
Решение 1 (руками) Враги хотят, чтобы выражение было ложно, такое возможно при выполнении следующих условий:
, , ИЛИ .
Переведем числа в двоичную систему счисления:
Рассмотрим два случая:
1) , ,
Чтобы , врагам нужен вида , * — 0 или 1.
Чтобы и , врагам нужен вида , * — 0 или 1.
Чтобы , на место * враги поставят 1, то есть будут брать , на месте ... — 1.
2) , ,
Чтобы , врагам нужен вида , * — 0 или 1.
Чтобы и , врагам нужен вида , * — 0 или 1, а на месте одного из _ стоит 1.
Чтобы , на место * враги поставят 1, то есть будут брать , на месте ... — 1.
Врагам достаточно, чтобы выполнялся 1 или 2 случай, но в обоих случаях они берут один и тот же .
Цель друзей — найти такой , чтобы , то есть их цель - обнулить все единицы выбранного врагами , а оставшиеся разряды им нужно занять так, чтобы число было минимальным, но натуральным (больше 0).
Тогда .
Решение 2 (прогой)
def f(x, a): return ((x & 35 != 0) or (x & 23 != 0)) <= ((x & 26 != 0) or (x & a == 0)) for a in range(1, 300): p = True for x in range(0, 300): if f(x, a) == False: p = False break if p == True: print(a) break
Ошибка.
Попробуйте повторить позже
Обозначим через поразрядную конъюнкцию неотрицательных целых чисел и . Например, .
Для какого наименьшего целого числа формула
тождественно истинна (т. е. принимает значение при любом неотрицательном целом значении переменной )?
for A in range(1000): p = True for x in range(1000): f = (x & 105 == 0) <= ((x & 58 != 0) <= (x & A != 0)) if f == False: p = False break if p == True: print(A) break
Ошибка.
Попробуйте повторить позже
Обозначим через поразрядную конъюнкцию неотрицательных целых чисел и . Например, .
Для какого наименьшего целого числа формула
тождественно истинна (т. е. принимает значение при любом неотрицательном целом значении переменной )?
def f(a): # если отрцание формулы возвращает истину, # то сама формула возвращает ложь for x in range(1000): if not((x & 85 == 0) <= ((x & 54 != 0) <= (x & a != 0))): return False return True for a in range(1000): if f(a): print(a) break
Ошибка.
Попробуйте повторить позже
Обозначим через поразрядную конъюнкцию неотрицательных целых чисел и .
Так, например, .
Для какого наименьшего неотрицательного целого числа формула
тождественно истинна (т. е. принимает значение 1 при любом неотрицательном целом значении переменной )?
def f(x, a): return ((x & 35 != 0) or (x & 23 != 0)) <= ((x & 26 == 0) or (x & a != 0)) for a in range(0, 300): p = True for x in range(0, 300): if f(x, a) == False: p = False break if p == True: print(a) break
Ошибка.
Попробуйте повторить позже
Обозначим через поразрядную конъюнкцию неотрицательных целых чисел и .
Так, например, .
Для какого наибольшего целого числа формула
тождественно истинна (т. е. принимает значение 1 при любом неотрицательном целом значении переменной )?
Решение 1
Преобразуем выражение к виду с помощью законов де Моргана:
Для того, чтобы выражение вида являлось истинным, единичные биты, стоящие в правой части, должны являться единичными битами левой.
Запишем числа 122 и 144 в двоичной системе счисления:
Враги будут брать такие , которые дают 0 в побитовой конъюнкции с числами и , и увеличить число незначащих единиц, чтобы .
Тогда враги возьмут , на месте ... — 1.
Тогда друзья берут такое , чтобы , и делают его максимальным:
, то есть .
Решение 2
def f(a): for x in range(1, 10000): if not((x & a == 0) or (x & 122 != 0) or (x & 144 != 0)): return False return True for a in range(1, 1000): if f(a): print(a)
Ошибка.
Попробуйте повторить позже
Обозначим через поразрядную конъюнкцию неотрицательных целых чисел и .
Так, например, .
Для какого наибольшего целого числа формула
тождественно истинна (т. е. принимает значение 1 при любом неотрицательном целом значении переменной )?
Решение 1 (руками)
Враги хотят, чтобы все выражение было ложно, тогда условия для врагов:
, , .
Чтобы , должно иметь вид **0**0*0*, где * - 0 или 1.
Чтобы , должно иметь вид **0*****0, где * - 0 или 1.
Чтобы , должно иметь как можно больше единиц, тогда для выполнения всех трех условий враги будут брать , который имеет вид , на месте ... стоят 1.
Друзья хотят, чтобы и при этом было максимально, тогда им нужно обнулять все разряды , в которых стоят 1, и поставить 1 во все разряды, где у стоят нули.
Отсюда получаем, что имеет вид , на месте ... стоят 0.
.
Решение 2 (прогой)
def f(a): for x in range(1000): if ((x & a == 0) or ((x & 74 == 0) <= (x & 65 != 0))) == 0: return False return True for a in range(1000, 0, - 1): if f(a): print(a) break
Ошибка.
Попробуйте повторить позже
Обозначим через поразрядную конъюнкцию неотрицательных целых чисел и .
Так, например, .
Для какого наибольшего целого числа формула
тождественно истинна (т. е. принимает значение 1 при любом неотрицательном целом значении переменной )?
Преобразуем выражение к виду с помощью законов де Моргана:
Для того, чтобы выражение вида являлось истинным, единичные биты, стоящие в правой части, должны являться единичными битами левой.
Запишем числа 25 и 17 в двоичной системе счисления:
Значит, обязательно должно содержать в себе единицу в нулевом, третьем и четвёртом разрядах. Так как ищем наибольшее , наш ответ .
Ошибка.
Попробуйте повторить позже
Обозначим через поразрядную конъюнкцию неотрицательных целых чисел и .
Для какого наименьшего целого числа формула
тождественно истинна (т. е. принимает значение 1 при любом неотрицательном целом значении переменной )?
Преобразуем выражение к виду с помощью законов де Моргана:
Для того, чтобы выражение вида являлось истинным, единичные биты, стоящие в правой части, должны являться единичными битами левой.
Запишем числа 38 и 55 в двоичной системе счисления:
– левая часть
– правая часть
Значит, обязательно должно содержать в себе единицу в четвертом и нулевом разряде. Так как ищем наименьшее , наш ответ .
Ошибка.
Попробуйте повторить позже
Введём выражение , обозначающее поразрядную конъюнкцию и (логическое «И» между соответствующими битами двоичной записи). Определите наибольшее натуральное число , меньшее , при котором выражение
тождественно ложно (то есть принимает значение при любом натуральном значении переменной ).
for A in range(1, 1000): p = True for x in range(1, 1000): f = (x & A != 0) and (x & 48 == 0) and (x & 27 == 0) if f == True: p = False break if p == True: print(A)
Ошибка.
Попробуйте повторить позже
Определите наименьшее натуральное число A, при котором выражение
тождественно ложно (то есть принимает значение при любом натуральном значении переменной )?
def f(x, a): return ((x & a == 0) and (x & 58 != 0) and (x & 22 == 0)) for a in range(1, 1000): if all(f(x, a) == False for x in range(1, 100)): print(a) break
Ошибка.
Попробуйте повторить позже
Введём выражение обозначающее поразрядную конъюнкцию и (логическое «И» между соответствующими битами двоичной записи). Определите наименьшее натуральное число , такое что выражение
тождественно истинно (то есть принимает значение при любом натуральном значении переменной )?
def f(a): for x in range(1, 1000): if ((x & 125 != 1) or ((x & 34 == 2) <= (x & a == 0))) == 0: return False return True for a in range(1, 1000): if f(a): print(a) break
Ошибка.
Попробуйте повторить позже
Введём выражение , обозначающее поразрядную конъюнкцию и (логическое «И» между соответствующими битами двоичной записи). Определите наименьшее натуральное число , такое что выражение
тождественно истинно (то есть принимает значение при любом натуральном значении переменной )?
def f(a): for x in range(1, 1000): if ((x & 27 != 0) <= ((x & 83 == 0) <= (x & a != 0))) == 0: return False return True for a in range(1, 1000): if f(a): print(a) break
Ошибка.
Попробуйте повторить позже
Определите наибольшее натуральное число A из интервала [10, 50] такое, что выражение
for A in range(10, 50+1): flag = True for x in range(100000): f = (((x & 56 != 0) <= (x & 18 != 0)) or (x & A != 0)) <= ( (x & 18 == 0) and (x & A == 0) and (x & 43 != 0)) if f == 1: flag = False break if flag: maxim = A print(maxim)
Ошибка.
Попробуйте повторить позже
Обозначим через поразрядную конъюнкцию неотрицательных целых чисел a и b.
Так, например,
Для какого наименьшего неотрицательного целого числа А формула
тождественно истинна (т. е. принимает значение 1 при любом неотрицательном целом значении переменной
def f(a): for x in range(1, 1000): if ((x & 144 == 0) <= ((x & 220 != 0) <= (x & a != 0))) == 0: return False return True for a in range(1000): if f(a): print(a) break
Ошибка.
Попробуйте повторить позже
Введём выражение обозначающее поразрядную конъюнкцию M и K (логическое «И» между соответствующими битами двоичной записи). Определите наименьшее неотрицательное число , такое что выражение
тождественно истинно (то есть принимает значение при любом натуральном значении переменной )?
Мечты врагов:
Переведем числа в -сс. . . Проведем поразрядную конъюнцию с . Получаем, что . Запишем мечты врагов: «Вот бы давал в поразрядной конъюнкции с нолик».
Теперь играем за друзей. Друзья не хотят, чтобы в поразрядной конъюнкции с давал ноль. Т.к. у нас требуют наименьшее число , на место звездочек ставим нули. Получаем число .
Ошибка.
Попробуйте повторить позже
Введём выражение , обозначающее поразрядную конъюнкцию и (логическое «И» между соответствующими битами двоичной записи). Определите наименьшее натуральное число , такое что выражение
тождественно истинно (то есть принимает значение при любом натуральном значении переменной )?
return ((x & 28 != 0) or (x & 45 != 0)) <= ((x & 48 == 0) <= (x & A != 0))
for A in range(10000):
met_false = False
for x in range(1000):
if not(f(x, A)):
met_false = True
if not(met_false):
print(A)
break
Ошибка.
Попробуйте повторить позже
Введём выражение обозначающее поразрядную конъюнкцию и (логическое «И» между соответствующими битами двоичной записи). Определите наименьшее неотрицательное число , такое что выражение
тождественно истинно (то есть принимает значение при любом натуральном значении переменной )?
return (x & 25 != 0) <= ((x & 17 == 0) <= (x & A != 0))
for A in range(10000):
met_false = False
for x in range(1000):
if not(f(x, A)):
met_false = True
if not(met_false):
print(A)
break
Ошибка.
Попробуйте повторить позже
Введём выражение , обозначающее поразрядную конъюнкцию n и m (логическое «И» между соответствующими битами двоичной записи). Определите наибольшее натуральное число , такое что выражение
Враги хотят чтобы одновременно , , .
Для выполнения первого условия должен иметь вид _ _ _ _ 0 0 _ 0. На месте _ может стоять 1 или 0.
Для выполнения и второго условия должен иметь вид _ _ 0 _ 0 0 0 0.
Для выполнения третьего условия единиц в должно быть как можно больше. Тогда он имеет вид ...1 1 0 1 0 0 0 0.
Друзья хотят такое максимальное чтобы . Тогда на местах с единицами в будут нули, а на местах нулей будут единицы. Значит .
Ошибка.
Попробуйте повторить позже
Введём выражение , обозначающее поразрядную конъюнкцию n и m (логическое «И» между соответствующими битами двоичной записи). Определите наименьшее натуральное число , такое что выражение
тождественно истинно (то есть принимает значение при любом натуральном значении переменной )?
Враги хотят чтобы одновременно , , .
Для выполнения первого условия должен иметь вид _ _ _ 0 _ 0 _ _ 0. На месте _ может стоять либо 0, либо 1.
Для выполнения и второго условия должен иметь вид _ _ * 0 * 0 * * 0. На месте хотя бы одной звездочки должна стоять единичка.
Для выполнения третьего условия единиц должно быть как можно меньше, значит должен иметь вид 0 0 * 0 * 0 * * 0. На месте только одной звездочки должна стоять единица.
Тогда друзья подберут такое минимальное чтобы . Друзьям достаточно подставить единички в тех местах где они могут появиться в . Итоговое .
Ошибка.
Попробуйте повторить позже
Обозначим через поразрядную конъюнкцию неотрицательных целых чисел и
Так, например,
Для какого наименьшего целого числа формула
тождественно истинна (т. е. принимает значение 1 при любом неотрицательном целом значении переменной
Враги хотят подобрать такой, что . Тогда на всех разрядах где у 65 единички будут нули и в одном из разрядов или в двух одновременно (где у 65 в двоичной записи нули, а у 91 единички) будут единички. Во всех остальных разрядах будут нули чтобы была больше вероятность истинности .
Тогда друзья чтобы поставят единички где они гарантированно могут появится в . Это будет число .