Skip to content

Instantly share code, notes, and snippets.

@scandoleiro
Created May 27, 2020 14:19
Show Gist options
  • Save scandoleiro/61d9ebd8dce9820428e4e421b903aa29 to your computer and use it in GitHub Desktop.
Save scandoleiro/61d9ebd8dce9820428e4e421b903aa29 to your computer and use it in GitHub Desktop.
# Function to generate a truth table (number of variables of the table (fixed number), number of variables of the table (recursive))
def geraTabelaVerdade(m,n,tabelaVerdade):
bits=2**m # rows in the table, fixed value
repeticoes_coluna=(bits//(2**n))*2
repeticoes_linha=(2**n//2)//2
contador=0
if not tabelaVerdade: # Create the first column
for i in range(bits // 2):
tabelaVerdade.append('0')
for i in range(bits // 2):
tabelaVerdade.append('1')
for j in range(repeticoes_coluna):
for i in range(repeticoes_linha):
tabelaVerdade[contador] = tabelaVerdade[contador] + '0'
contador += 1
for i in range(repeticoes_linha):
tabelaVerdade[contador] = tabelaVerdade[contador] + '1'
contador += 1
if n==1:
return tabelaVerdade
else:
return geraTabelaVerdade(m,n-1,tabelaVerdade)
qtdVT = len(df.columns) # variables quantity to the truth table
tabelaVerdade = []
matrizTabelaVerdade = geraTabelaVerdade(qtdVT,qtdVT,tabelaVerdade)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment