Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- det2 = lambda m: m[0][0] * m[1][1] - m[1][0] * m[0][1]
- 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]
- det3 = lambda m: sum([m[0][i] * (-1 if i % 2 else 1) * det2(minor(m, 0, i)) for i in xrange(3)])
- trans = lambda m: [[m[y][x] for y in xrange(3)] for x in xrange(3)]
- cof = lambda m: [[det2(minor(m, x, y)) for y in xrange(3)] for x in xrange(3)]
- adj = lambda m: [[m[x][y] * (-1 if (x * 3 + y) % 2 else 1) for y in xrange(3)] for x in xrange(3)]
- fin = lambda d, m: [[m[x][y] * (1/d) for y in xrange(3)] for x in xrange(3)]
- pretty = lambda m: "\n".join([" ".join(map(str, x)) for x in m])
- process = (lambda m: str(det3(m)),
- lambda m: pretty(trans(m)),
- lambda m: pretty(cof(trans(m))),
- lambda m: pretty(adj(cof(trans(m)))),
- lambda m: pretty(fin(det3(m), adj(cof(trans(m)))))
- )
- for x in xrange(2):
- mtx = raw_input("Input: ").strip().split(',')
- mtx = [[int(mtx[x * 3 + y]) for y in xrange(3)] for x in xrange(3)]
- print "\n\n".join([process[x](mtx) for x in xrange(5)])
- raw = lambda: raw_input("Input: ").strip().split(',')
- input = lambda zzz: [[int(zzz[x * 3 + y]) for y in xrange(3)] for x in xrange(3)]
- """
- AND THEN
- """
- print "\n\n======\n\n".join([
- (lambda mtx, process: "\n\n".join([process[x](mtx) for x in xrange(5)]))
- (
- (lambda zzz: [[int(zzz[x * 3 + y]) for y in xrange(3)] for x in xrange(3)])(raw_input("Input: ").strip().split(',')),
- (lambda det2, minor, det3, trans, cof, adj, fin, pretty:
- (
- lambda m: str(det3(m, minor, det2)),
- lambda m: pretty(trans(m)),
- lambda m: pretty(cof(trans(m), minor, det2)),
- lambda m: pretty(adj(cof(trans(m), minor, det2))),
- lambda m: pretty(fin(det3(m, minor, det2), adj(cof(trans(m), minor, det2))))
- )
- )(lambda m: m[0][0] * m[1][1] - m[1][0] * m[0][1],
- 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],
- lambda m, minor, det2: sum([(m[0][i] * (-1 if i % 2 else 1) * det2(minor(m, 0, i))) for i in xrange(3)]),
- lambda m: [[m[y][x] for y in xrange(3)] for x in xrange(3)],
- lambda m, minor, det2: [[det2(minor(m, x, y)) for y in xrange(3)] for x in xrange(3)],
- lambda m: [[m[x][y] * (-1 if (x * 3 + y) % 2 else 1) for y in xrange(3)] for x in xrange(3)],
- lambda d, m: [[m[x][y] * (1/d) for y in xrange(3)] for x in xrange(3)],
- lambda m: "\n".join([" ".join(map(str, x)) for x in m])
- )
- ) for a in xrange(2)])
Add Comment
Please, Sign In to add comment