2( jupiter)

 def mapper(a, b):

    return [((i, j), a[i][k] * b[k][j])

            for i in range(len(a))

            for j in range(len(b[0]))

            for k in range(len(b))]

def map_reduce(a, b):

    kv = mapper(a, b)

    grouped = {}

    for k, v in kv:

        grouped.setdefault(k, []).append(v)

    return grouped

def to_matrix(grouped, r, c):

    return [[sum(grouped[(i, j)]) for j in range(c)] for i in range(r)]

# Example

a = [[1, 2, 3], [4, 5, 6]]

b = [[7, 8], [9, 10], [11, 12]]

for row in to_matrix(map_reduce(a, b), len(a), len(b[0])):

    print(row)


Comments

Popular posts from this blog

7

8

6