fork download
  1. import itertools
  2. def inclusion_and_exclusion_theorem(n):
  3. xs = []
  4. for i in range(0, n):
  5. xs.append(chr(ord('A') + i))
  6. ys = []
  7. for i in range(1, n + 1):
  8. items = itertools.combinations(xs, i)
  9. items = list(list(x) for x in items)
  10. ys.append(items)
  11. sign = True
  12. s = ""
  13. for i0 in ys:
  14. m = []
  15. sign = not sign
  16. for i1 in i0:
  17. m.append("n(" + "∩".join(i1) + ")")
  18. if sign:
  19. s += " - " + " - ".join(m)
  20. else:
  21. s += " + " + " + ".join(m)
  22. if s[0:3] == ' + ':
  23. s = s[3:]
  24. return s;
  25. print(inclusion_and_exclusion_theorem(3))
  26.  
Success #stdin #stdout 0.02s 9168KB
stdin
Standard input is empty
stdout
n(A) + n(B) + n(C) - n(A∩B) - n(A∩C) - n(B∩C) + n(A∩B∩C)