Обозначим через m&n поразрядную конъюнкцию неотрицательных целых
14&5 = 11102&01012 = 01002 = 4.
Для какого наименьшего неотрицательного целого
Приведём решение на языке Python.
for a in range(0, 1000):
k = 0
for x in range(0, 1000):
if (x & 39 == 0) or ((x & 11 == 0) <= (x & a != 0)):
k += 1
if k == 1000:
print(a)
break
Ответ: 36.
Приведём решение Юрия Красильникова на языке Python.
print(min([a for a in range(1000) if all([x&39==0 or (x&11!=0 or x&a!=0) for x in range(1000)])]))
Приведём решение Евгения Джобса (аналитическое через анализ разрядов).
Переведем приведенные числа в двоичную систему счисления.
Проанализируем условие и определим, когда значение параметра влияет на значение всего выражения. Для удобства заменим подвыражения на коротки записи &39, &11 и &A. Получаем:
Значение подвыражения в скобке существенно, когда выражение значение подвыражения &A влияет на значение подвыражения в скобке, когда
Итого имеем систему:
Таким образом, можно заключить, что
Приведём решение Евгения Джобса (аналитическое через алгебру логики).
Для удобства раскроем импликацию, сделав аналогичную предыдущему решению замену. Получаем:
Опишем каждое подвыражение с помощью логических выражений, где Xn будет отвечать за значение разряда
Можно заметить, что когда значение подвыражения в
принимает значение истина, для второго наоборот. Поэтому для удобства можно заменить запись
на
на
Подставим получившиеся выражения в выражение из условия и произведем сокращение выражения.
По правилу свертки можем сократить выражение По итогу получим выражение
Это выражение можно преобразовать (с учетом поиска минимальных значений) в выражение
Дополним его подвыражением с параметром
Заметим, что выражение может быть сведено к тожественной истинности только при сокращении его через правило исключения третьего для

