Advertisement
Guest User

Untitled

a guest
Jan 20th, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.41 KB | None | 0 0
  1. from itertools import product
  2.  
  3. formula = "x + (y*-z)"
  4.  
  5.  
  6. def zmienne(F):
  7. z = set('abcdefgijklomnopqrstuvwzyzx')
  8. return set(F) & z
  9.  
  10. def ciagi_binarne(n):
  11. lista = n * [ [False, True] ]
  12. return list(product(*lista))
  13.  
  14. def wartosciowania(zmienne):
  15. n = len(zmienne)
  16. cb = ciagi_binarne(n)
  17.  
  18. wynik = []
  19. wynik2 = []
  20. print("cb:",cb)
  21. print("zmienne",zmienne)
  22. slownik = {}
  23. for zmienna in zmienne:
  24. for ciag in cb:
  25. slownik = {}
  26. for wartosc in ciag:
  27. slownik[zmienna]=wartosc
  28. wynik2.append(slownik)
  29.  
  30.  
  31. for c in cb:
  32. wynik.append( dict(zip(zmienne, c)))
  33. #print("tu",dict(zip(zmienne, c)))
  34. #print("wynik", wynik)
  35. #print("wynik2", wynik2)
  36. if(wynik==wynik2):
  37. print("PRAWDA")
  38.  
  39. return wynik
  40.  
  41. def wartosc_logiczna(F, wart):
  42. F = F.replace('*', ' and ')
  43. F = F.replace('+', ' or ')
  44. F = F.replace('-', ' not ')
  45.  
  46. return eval(F, wart)
  47.  
  48. def spelnialna(F):
  49. z = zmienne(F)
  50. wart = wartosciowania(z)
  51. return any(wartosc_logiczna(F, w) == True for w in wart)
  52.  
  53.  
  54. cb = ciagi_binarne(3)
  55.  
  56. print (cb)
  57. print (len(cb))
  58.  
  59. print (wartosciowania('abc'))
  60.  
  61. formuly = [ 'a', 'a * b', 'a * -a', '(p + q + r) * (-p * -q * -r)']
  62.  
  63. for f in formuly:
  64. print("koniec")
  65. print (f, spelnialna(f))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement