Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from itertools import product
- formula = "x + (y*-z)"
- def zmienne(F):
- z = set('abcdefgijklomnopqrstuvwzyzx')
- return set(F) & z
- def ciagi_binarne(n):
- lista = n * [ [False, True] ]
- return list(product(*lista))
- def wartosciowania(zmienne):
- n = len(zmienne)
- cb = ciagi_binarne(n)
- wynik = []
- wynik2 = []
- print("cb:",cb)
- print("zmienne",zmienne)
- slownik = {}
- for zmienna in zmienne:
- for ciag in cb:
- slownik = {}
- for wartosc in ciag:
- slownik[zmienna]=wartosc
- wynik2.append(slownik)
- for c in cb:
- wynik.append( dict(zip(zmienne, c)))
- #print("tu",dict(zip(zmienne, c)))
- #print("wynik", wynik)
- #print("wynik2", wynik2)
- if(wynik==wynik2):
- print("PRAWDA")
- return wynik
- def wartosc_logiczna(F, wart):
- F = F.replace('*', ' and ')
- F = F.replace('+', ' or ')
- F = F.replace('-', ' not ')
- return eval(F, wart)
- def spelnialna(F):
- z = zmienne(F)
- wart = wartosciowania(z)
- return any(wartosc_logiczna(F, w) == True for w in wart)
- cb = ciagi_binarne(3)
- print (cb)
- print (len(cb))
- print (wartosciowania('abc'))
- formuly = [ 'a', 'a * b', 'a * -a', '(p + q + r) * (-p * -q * -r)']
- for f in formuly:
- print("koniec")
- print (f, spelnialna(f))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement