Skip to content

Commit c1a91c5

Browse files
committed
week9
1 parent 6770bfc commit c1a91c5

File tree

3 files changed

+119
-0
lines changed

3 files changed

+119
-0
lines changed

week9/1-class.py

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
from sys import stdin
2+
3+
4+
class Matrix:
5+
def __init__(self, m):
6+
self.m = []
7+
for i in range(len(m)):
8+
self.m.append([])
9+
for j in range(len(m[i])):
10+
self.m[i].append(m[i][j])
11+
12+
def __str__(self):
13+
return "\n".join(map(lambda i: "\t".join(map(str, i)), self.m))
14+
15+
def size(self):
16+
return len(self.m), len(self.m[0])
17+
18+
19+
exec(stdin.read())

week9/2-add-mul.py

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
from sys import stdin
2+
3+
4+
class Matrix:
5+
def __init__(self, m):
6+
self.m = []
7+
for i in range(len(m)):
8+
self.m.append([])
9+
for j in range(len(m[i])):
10+
self.m[i].append(m[i][j])
11+
12+
def __add__(self, other):
13+
res = []
14+
for i in range(len(self.m)):
15+
res.append([])
16+
for j in range(len(self.m[i])):
17+
res[i].append(self.m[i][j] + other.m[i][j])
18+
19+
return Matrix(res)
20+
21+
def __mul__(self, n):
22+
return Matrix(list(map(
23+
lambda l: list(map(lambda i: i * n, l)),
24+
self.m
25+
)))
26+
27+
__rmul__ = __mul__
28+
29+
def __str__(self):
30+
return "\n".join(map(lambda i: "\t".join(map(str, i)), self.m))
31+
32+
def size(self):
33+
return len(self.m), len(self.m[0])
34+
35+
36+
exec(stdin.read())

week9/3-errors.py

+64
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
from sys import stdin
2+
3+
4+
class MatrixError(BaseException):
5+
def __init__(self, matrix1, matrix2):
6+
self.matrix1 = matrix1
7+
self.matrix2 = matrix2
8+
9+
10+
class Matrix:
11+
def __init__(self, m):
12+
self.m = []
13+
for i in range(len(m)):
14+
self.m.append([])
15+
for j in range(len(m[i])):
16+
self.m[i].append(m[i][j])
17+
18+
def __add__(self, other):
19+
if len(self.m) != len(other.m) or \
20+
len(self.m[0]) != len(other.m[0]):
21+
raise MatrixError(self, other)
22+
23+
res = []
24+
for i in range(len(self.m)):
25+
res.append([])
26+
for j in range(len(self.m[i])):
27+
res[i].append(self.m[i][j] + other.m[i][j])
28+
29+
return Matrix(res)
30+
31+
def __mul__(self, n):
32+
return Matrix(list(map(
33+
lambda l: list(map(lambda i: i * n, l)),
34+
self.m
35+
)))
36+
37+
__rmul__ = __mul__
38+
39+
def __str__(self):
40+
return "\n".join(map(lambda i: "\t".join(map(str, i)), self.m))
41+
42+
def size(self):
43+
return len(self.m), len(self.m[0])
44+
45+
def transpose(self):
46+
transposed = []
47+
for i in range(len(self.m[0])):
48+
transposed.append([])
49+
for j in range(len(self.m)):
50+
transposed[i].append(self.m[j][i])
51+
self.m = transposed
52+
return Matrix(transposed)
53+
54+
@staticmethod
55+
def transposed(matrix):
56+
transposed = []
57+
for i in range(len(matrix.m[0])):
58+
transposed.append([])
59+
for j in range(len(matrix.m)):
60+
transposed[i].append(matrix.m[j][i])
61+
return Matrix(transposed)
62+
63+
64+
exec(stdin.read())

0 commit comments

Comments
 (0)