Advertisement
JoelSjogren

meta nums

Dec 6th, 2016
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.67 KB | None | 0 0
  1. import itertools
  2.  
  3. def msum(a):
  4.     return [j for i in a for j in i]
  5.  
  6. def mprod(a):
  7.     return [msum(i) for i in itertools.product(*a)]
  8.  
  9. def mpow(a, b):
  10.     return mprod(mprod([[a], b]))
  11.  
  12. ex = [
  13.     'msum([[[]],[[]]])',  # 1 + 1 = 2
  14.     'msum([[[],[]],[[],[],[]]])',  # 2 + 3 = 5
  15.     'mprod([[[],[]],[[],[],[]]])',  # 2 * 3 = 6
  16.     'mprod([[[],[[]]],[[],[[]]]])',  # (1+x)*(1+x) = 1+2x+x^2
  17.     'mpow([[],[[]]], [[],[],[],[]])',  # (1+x)^4 = 1+4x+6x^2+4x^3+x^4
  18.     'mprod(mprod([[[[],[[]]]], [[],[],[],[]]]))',  # same thing -- (1+x)^4
  19. ]
  20.  
  21. def demo(sort=True):
  22.     for i in ex:
  23.         j = eval(i)
  24.         if sort:
  25.             j = sorted(j)
  26.         print(i, '=', j)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement