Escreva programas com as entradas e saídas abaixo.
Construa uma tabela que liste o conjunto de valores de todas as 256 funções booleanas de três variáveis.

Passo 1

O enunciado pede um programa que gere a tabela de todas as \;2^{2^3}=256\; funções booleanas de três variáveis. Isso envolve listar as \;2^3=8\; combinações possíveis de entradas (x,y,z) e, para cada função identificada por um número de 0 a 255, imprimir seus valores de saída para essas entradas.

Passo 2

Geramos primeiro todas as combinações de entrada (x,y,z). Em Python, isso é feito com compreensão de lista:
\texttt{combos} = [(x,y,z)\;\text{for}\;x\;\text{in}\;(0,1)\;\text{for}\;y\;\text{in}\;(0,1)\;\text{for}\;z\;\text{in}\;(0,1)]
Essa lista terá exatamente 8 tuplas, na ordem lexicográfica de (0,0,0) até (1,1,1).

Passo 3

Cada função booleana corresponde a um número inteiro f de 0 a 255. A representação binária de f em 8 bits dá os valores de saída na ordem em que definimos as entradas: o bit menos significativo (LSB) para (0,0,0), o próximo para (0,0,1) e assim por diante até o bit mais significativo (MSB) para (1,1,1). Em Python:
\texttt{saida\_bin} = \texttt{format}(f,\,'08b')
e para obter o valor de saída na linha i (onde i vai de 0 a 7) usamos \texttt{saida\_bin[::-1][i]} porque invertemos a string para alinhar LSB com índice 0.

Passo 4

Montamos o cabeçalho da tabela com colunas x, y, z e f0 até f255, e depois imprimimos cada uma das 8 linhas, juntando cada saída das 256 funções. O programa em Python completo fica assim:
combos = [(x, y, z) for x in (0,1) for y in (0,1) for z in (0,1)]
funcoes = [format(f, ‘08b’) for f in range(256)]
header = "x y z " + " “.join(f"f{f}” for f in range(256))
print(header)
for idx, (x, y, z) in enumerate(combos):

monta a sequência de saídas para essa linha

inverte cada string para alinhar LSB no índice 0

saidas = [ bin_str[::-1][idx] for bin_str in funcoes]
print(x, y, z, *saidas)
if name ==main”:
gerar_tabela_funcoes_3vars()

Esse programa produz uma tabela com 8 linhas (para cada \((x,y,z)\)) e 259 colunas (3 de entradas \(+256\) de saídas), listando todas as funções booleanas de três variáveis."]))print(default_api.SolutionSteps(solution_steps=["O enunciado pede um programa que gere a tabela de todas as \(\;2^{2^3}=256\;\) funções booleanas de três variáveis. Isso envolve listar as \(\;2^3=8\;\) combinações possíveis de entradas \((x,y,z)\) e, para cada função identificada por um número de \(0\) a \(255\), imprimir seus valores de saída para essas entradas.", 

Resposta

def \(gerar_tabela_funcoes_3vars\)():

Exercícios de Livros Relacionados