Guest User

Untitled

a guest
Apr 25th, 2018
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.75 KB | None | 0 0
  1. det2 = lambda m: m[0][0] * m[1][1] - m[1][0] * m[0][1]
  2. minor = lambda m, r, c: [[m[x][y] for y in [z for z in xrange(3) if z != c]] for x in xrange(3) if x != r]
  3. det3 = lambda m: sum([m[0][i] * (-1 if i % 2 else 1) * det2(minor(m, 0, i)) for i in xrange(3)])
  4. trans = lambda m: [[m[y][x] for y in xrange(3)] for x in xrange(3)]
  5. cof = lambda m: [[det2(minor(m, x, y)) for y in xrange(3)] for x in xrange(3)]
  6. adj = lambda m: [[m[x][y] * (-1 if (x * 3 + y) % 2 else 1) for y in xrange(3)] for x in xrange(3)]
  7. fin = lambda d, m: [[m[x][y] * (1/d) for y in xrange(3)] for x in xrange(3)]
  8. pretty = lambda m: "\n".join([" ".join(map(str, x)) for x in m])
  9.  
  10. process = (lambda m: str(det3(m)),
  11.            lambda m: pretty(trans(m)),
  12.            lambda m: pretty(cof(trans(m))),
  13.            lambda m: pretty(adj(cof(trans(m)))),
  14.            lambda m: pretty(fin(det3(m), adj(cof(trans(m)))))
  15.            )
  16.  
  17. for x in xrange(2):
  18.     mtx = raw_input("Input: ").strip().split(',')
  19.     mtx = [[int(mtx[x * 3 + y]) for y in xrange(3)] for x in xrange(3)]
  20.    
  21.     print "\n\n".join([process[x](mtx) for x in xrange(5)])
  22.  
  23. raw = lambda: raw_input("Input: ").strip().split(',')
  24. input = lambda zzz: [[int(zzz[x * 3 + y]) for y in xrange(3)] for x in xrange(3)]    
  25.  
  26. """
  27. AND THEN
  28. """
  29.  
  30. print "\n\n======\n\n".join([
  31.         (lambda mtx, process: "\n\n".join([process[x](mtx) for x in xrange(5)]))
  32.         (
  33.             (lambda zzz: [[int(zzz[x * 3 + y]) for y in xrange(3)] for x in xrange(3)])(raw_input("Input: ").strip().split(',')),
  34.            
  35.              (lambda det2, minor, det3, trans, cof, adj, fin, pretty:
  36.                 (
  37.                     lambda m: str(det3(m, minor, det2)),
  38.                     lambda m: pretty(trans(m)),
  39.                     lambda m: pretty(cof(trans(m), minor, det2)),
  40.                     lambda m: pretty(adj(cof(trans(m), minor, det2))),
  41.                     lambda m: pretty(fin(det3(m, minor, det2), adj(cof(trans(m), minor, det2))))
  42.                 )
  43.              )(lambda m: m[0][0] * m[1][1] - m[1][0] * m[0][1],
  44.                lambda m, r, c: [[m[x][y] for y in [z for z in xrange(3) if z != c]] for x in xrange(3) if x != r],
  45.                lambda m, minor, det2: sum([(m[0][i] * (-1 if i % 2 else 1) * det2(minor(m, 0, i))) for i in xrange(3)]),
  46.                lambda m: [[m[y][x] for y in xrange(3)] for x in xrange(3)],
  47.                lambda m, minor, det2: [[det2(minor(m, x, y)) for y in xrange(3)] for x in xrange(3)],
  48.                lambda m: [[m[x][y] * (-1 if (x * 3 + y) % 2 else 1) for y in xrange(3)] for x in xrange(3)],
  49.                lambda d, m: [[m[x][y] * (1/d) for y in xrange(3)] for x in xrange(3)],
  50.                lambda m: "\n".join([" ".join(map(str, x)) for x in m])
  51.                )
  52.         ) for a in xrange(2)])
Add Comment
Please, Sign In to add comment