commit initial
Cette révision appartient à :
47
latex/logique.py
Fichier normal
47
latex/logique.py
Fichier normal
@@ -0,0 +1,47 @@
|
||||
import itertools
|
||||
|
||||
def dA(s) :
|
||||
return s[0] and s[1] and not s[2]
|
||||
|
||||
def dB(s) :
|
||||
return not s[2]
|
||||
|
||||
def dC(s) :
|
||||
return (s[1] or not s[0]) and not (s[1] and not s[0])
|
||||
|
||||
def dmA(s) :
|
||||
return s[0] == dA(s)
|
||||
|
||||
def dmB(s) :
|
||||
return s[1] == dB(s)
|
||||
|
||||
def dmC(s) :
|
||||
return s[2] == dC(s)
|
||||
|
||||
def OK(s) :
|
||||
return dmA(s) and dmB(s) and dmC(s)
|
||||
|
||||
def table(nvar, lf) :
|
||||
produit = list(itertools.product([False, True], repeat=nvar))
|
||||
table = []
|
||||
for s in produit :
|
||||
ligne = {"s" : s}
|
||||
for f in lf :
|
||||
ligne[f.__name__] = f(s)
|
||||
table.append(ligne)
|
||||
return table
|
||||
|
||||
def table_to_latex(table, vars, lf) :
|
||||
fb = lambda b : r"\V" if b else r"\F"
|
||||
#keys = [x for x in sorted(list(table[0].keys())) if x!="s"]
|
||||
keys = [f.__name__ for f in lf]
|
||||
print(r"\begin{array}{"+ "|".join(["c"] * len(vars)) + "||" + "|".join(["c"] * len(keys)) + "}")
|
||||
print("&".join(vars + [x for x in keys])+r"\\")
|
||||
print(r"\hline")
|
||||
for l in table :
|
||||
print("&".join([fb(x) for x in l["s"]]+[fb(l[k]) for k in keys]),r"\\", sep="")
|
||||
print(r"\end{array}")
|
||||
|
||||
def table_latex(vars, lf) :
|
||||
t = table(len(vars), lf)
|
||||
table_to_latex(t, vars, lf)
|
||||
Référencer dans un nouveau ticket
Bloquer un utilisateur