Advertisement
Guest User

Untitled

a guest
Nov 21st, 2019
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.22 KB | None | 0 0
  1. def multiply(phi1, phi2):
  2. assert isinstance(phi1, Factor) and isinstance(phi2, Factor)
  3. # Cerinta 1 :
  4. new_vars = []
  5. new_values = {}
  6.  
  7. for var in phi1.vars:
  8. new_vars.append(var)
  9. for var in phi2.vars:
  10. if var not in phi1.vars:
  11. new_vars.append(var)
  12.  
  13. for values1 in phi1.values:
  14. for values2 in phi2.values:
  15. ok = True
  16. for var in new_vars:
  17. if var in phi1.vars and var in phi2.vars:
  18. idx1 = phi1.vars.index(var)
  19. idx2 = phi2.vars.index(var)
  20. if values1[idx1] != values2[idx2]:
  21. ok = False
  22.  
  23. if ok:
  24. tmp_val = []
  25. for var in new_vars:
  26. if var in phi1.vars:
  27. idx1 = phi1.vars.index(var)
  28. tmp_val.append(values1[idx1])
  29. else:
  30. idx2 = phi2.vars.index(var)
  31. tmp_val.append(values2[idx2])
  32. new_values[tuple(tmp_val)] = phi1.values[values1] * phi2.values[values2]
  33.  
  34. result = Factor(new_vars, new_values)
  35. return result
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement