ошибка IndexError: list index out of range с умножением матриц
Когда вводишь кол-во столбцов и строк у двух матриц одинаковые,то все ок. Но если у первой матрицы кол-во строк отличается от кол-ва столбцов во второй,то ошибка IndexError: list index out of range
import random
a_row = int(input("Введите кол-во строк в первой матрице = "))
a_col = int(input("Введите кол-во столбцов в первой матрице = "))
b_row = int(input("Введите кол-во строк во второй матрице = "))
b_col = int(input("Введите кол-во столбцов во второй матрице = "))
a = [[random.randint(-100, 100) for _ in range(int(a_col))] for _ in range(int(a_row))]
b = [[random.randint(-100, 100) for _ in range(int(b_col))] for _ in range(int(b_row))]
print("Первая матрица")
print(a)
print("Вторая матрица")
print(b)
if a_col != b_row:
print("Матрицы нельзя перемножить")
else:
r = [[0 for _ in range(a_row)] for _ in range(b_col)]
for row in range(a_row):
for col in range(b_col):
for elem in range(a_col):
r[row][col] += a[row][elem] * b[elem][col]
print("Результативная матрица")
print(r)
Ответы (1 шт):
Автор решения: Сергей
→ Ссылка
Приведите хотя бы тестовый пример. Это не подтверждается: "если у первой матрицы кол-во строк отличается от кол-ва столбцов во второй,то ошибка" Например, для первой матрицы 1x1 и второй 2x2 - все работает (две 5x6 - тоже работает).