1. Базовая программа для решения 
def f(A): # вычисление значения функции по значениям из A
    w,x,y,z=A # порядок переменных и их значения
    r1=x <= (y ==w) # "половина" функции
    r2=y == (w<=z)  # другая "половина" функции
    r=r1 and r2 # значение функции
    return int(r) # можно без int
#основная часть
for n in range(16,32) : #перебор значений от 10000 до 11111
    ss=bin(n)[-4:] # оставляем хвост длиной 4 (0000-1111)
    A=[] #формируем числовой вариант значений
    for s in ss : A.append(int(s)) # можно через генератов списка A=[int(s) for s in ss]
    print(ss,'=',f(A)) # печать аргумента и значения для выбранного порядка

2. Используя данные из условия  можно сократить печать 
def f(A): # вычисление значения функции по значениям из A
    w,x,y,z=A # порядок переменных и их значения
    r1=x <= (y ==w) # "половина" функции
    r2=y == (w<=z)  # другая "половина" функции
    r=r1 and r2 # значение функции
    return int(r) # можно без int
#основная часть
for n in range(16,32) : #перебор значений от 10000 до 11111
    ss=bin(n)[-4:] # оставляем хвост длиной 4 (0000-1111)
    A=[] #формируем числовой вариант значений
    for s in ss : A.append(int(s)) # можно через генератов списка A=[int(s) for s in ss]
   
r=f(A) # значение функции
    if sum(A)==1 or sum(A) in [2,3] and r ==1 :    # отбираем строки по условию 
        print(ss,'=',r)


3. Меняем порядок переменных и находим нужный (решение с изменениями порядка)
Финальный порядок и есть ответ
def f(A): # вычисление значения функции по значениям из A
    #w,x,y,z=A # порядок переменных  1-й прогон
    #w,y,x,z=A # порядок переменных  2-й прогон
    y,x,w,z=A  # порядок переменных  3-й прогон
    r1=x <= (y ==w) # "половина" функции
    r2=y == (w<=z)  # другая "половина" функции
    r=r1 and r2 # значение функции
    return int(r) # можно без int
#основная часть
for n in range(16,32) : #перебор значений от 10000 до 11111
    ss=bin(n)[-4:] # оставляем хвост длиной 4 (0000-1111)
    A=[] #формируем числовой вариант значений
    for s in ss : A.append(int(s)) # можно через генератов списка A=[int(s) for s in ss]
   
r=f(A) # значение функции
    if sum(A)==1 or sum(A) in [2,3] and r ==1 :    # отбираем строки по условию 
        print(ss,'=',r)


 

Пропустить Навигационные Ссылки.
Чтобы оставить комментарий нужна авторизация