Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 19, 2018 00:59:03

Kate45678
Зарегистрирован: 2018-11-19
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Реализация класса Matrix: Добавить, умножить

Привет!
Помогите, пожалуйста, решить задание.
1. Реализуйте класс Matrix. Он должен содержать:
Конструктор от списка списков. Гарантируется, что списки состоят из чисел, не пусты и все имеют одинаковый размер. Конструктор должен копировать содержимое списка списков, т.е. при изменении списков, от которых была сконструирована матрица, содержимое матрицы изменяться не должно.
Метод __str__ переводящий матрицу в строку. При этом элементы внутри одной строки должны быть разделены знаками табуляции, а строки — переносами строк. При этом после каждой строки не должно быть символа табуляции и в конце не должно быть переноса строки.
Метод size без аргументов, возвращающий кортеж вида (число строк, число столбцов)
На проверку вы должны сдать только файл, содержащий описание класса и одну строку вне класса (в качестве основной программы):

exec(stdin.read())

И в начале файла:

from sys import stdin

Для тестирования класса вы можете вместо строки exec(stdin.read()) вставлять код из примеров или писать свой код.

Формат ввода

Вводится исходный код тестирующей программы на языке Python.

Формат вывода

Выведите результат её работы в текущем окружении при помощи exec как это указано в условии.


2. Добавьте в предыдущий класс следующие методы:
__add__ принимающий вторую матрицу того же размера и возвращающий сумму матриц
__mul__ принимающий число типа int или float и возвращающий матрицу, умноженную на скаляр
__rmul__ делающий то же самое, что и __mul__. Этот метод будет вызван в том случае, аргумент находится справа. Можно написать __rmul__ = __mul__

Данные для проверки:
m1 = Matrix([, , ])
m2 = Matrix([, , ])
print(m1 + m2)

Вывод программы:
1 1 0
20 1 -1
-1 -2 1

Но нужно сделать код максимально быстрым, так как появляется ошибка Runtime error
Помогите, пожалуйста

Отредактировано Kate45678 (Ноя. 19, 2018 01:23:07)

Офлайн

#2 Ноя. 19, 2018 01:37:57

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9726
Репутация: +  843  -
Профиль   Отправить e-mail  

Реализация класса Matrix: Добавить, умножить

Завтра тебе дадут другое задание, будешь тупить на нём точно так же. Смысла нет решать за тебя это задание целиком, хоть оно и не сложное.



Офлайн

#3 Ноя. 19, 2018 01:47:13

Kate45678
Зарегистрирован: 2018-11-19
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Реализация класса Matrix: Добавить, умножить

py.user.next
Завтра тебе дадут другое задание, будешь тупить на нём точно так же. Смысла нет решать за тебя это задание целиком, хоть оно и не сложное.

Я решила первую часть задания и не понимаю, как решить пункт 2.
Не вижу ничего плохого в том, что кто-то сможет написать решение, а я это разберу и пойму. Вам бы лишь нагрубить кому-то

Отредактировано Kate45678 (Ноя. 19, 2018 01:47:28)

Офлайн

#4 Ноя. 19, 2018 04:43:17

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9726
Репутация: +  843  -
Профиль   Отправить e-mail  

Реализация класса Matrix: Добавить, умножить

Kate45678
Я решила первую часть задания
Так вот у нас и возникают сомнения. Если ты её решила, то какие там ошибки могут возникать, а если не решила, значит ничего и не поняла и всё это надо за тебя писать.

Kate45678
а я это разберу и пойму
Откуда ты знаешь, что ты это разберёшь? Скорее всего, ты пойдёшь это сдавать якобы это твоё, а препод усмехнётся и даст тебе точно такое же задание. То есть получится так, что люди здесь впустую проработали непонятно ради кого и ради чего.

Kate45678
Вам бы лишь нагрубить кому-то
А мы тебе ещё не грубили. Можем, конечно, обозвать тебя дурой и халявщицей. Дурой - потому что ничего делать не умеешь, поступила куда-то, не имея достаточно мозгов для обучения. А халявщицей - потому что приходишь на форумы и считаешь, что тебе кто-то что-то тут бесплатно должен, хотя сама ты никто и звать тебя никак - просто кусок мяса на двух ногах (так называемое тело, в армии обычно так называют новобранцев).



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version