Архив: Написать класс для матрицы

Бюджет 8$ / 500
руб
в месяц
Создан: 5 лет назад
Закрыт
Описание
Написать класс для матрицы.

Class should support following operations :
multiplication on other matrix
multiplication on scalar
addition
subtraction
transposition
constructor, 3 parameters:
1) number of rows
2) number of columns
3) generator function , produced values are 3-element tuple (row, column, value); order of appearance: a) tuples with lower rows numbers come first b) if rows are equal tuples with lower columns numbers come first; if value not produced for some cell, its default value is 0
if order of appearance in generator function not satisfied throw an exception
__repr__    (useful for debugging, method description)
Implementation requirements:

matrix data should be stored in 2-dimension tuple (tuple of tuples) to provide immutability, see: en.wikipedia.org/wiki/Imm...
matrix data variable should have name data
temporary objects of matrix size (rows * columns) are not allowed nor in constructor nor in operations code, maximum size of temporary object is max(rows, columns)
each operation produces new matrix
for most operations double loop (for i in ...: for j in ...) required, to make code more concise and clean use generic function for  looping and pass lambda function (that represents unique part of each operation) as parameter to it; at least following operations should use generic function: "multiplication on scalar", "subtraction", "addition", however optionally you may create advanced version that can be applied to "multiplication on other matrix" and "transposition" also

Implementation hints:

as temporary objects not allowed one of approaches to construct object is to use nested tuple generator
simple example:
tuple(tuple (i*j for i in range(1,10)) for j in range(1,10))
((1, 2, 3, 4, 5, 6, 7, 8, 9),
(2, 4, 6, 8, 10, 12, 14, 16, 18),
(3, 6, 9, 12, 15, 18, 21, 24, 27),
(4, 8, 12, 16, 20, 24, 28, 32, 36),
(5, 10, 15, 20, 25, 30, 35, 40, 45),
(6, 12, 18, 24, 30, 36, 42, 48, 54),
(7, 14, 21, 28, 35, 42, 49, 56, 63),
(8, 16, 24, 32, 40, 48, 56, 64, 72),
(9, 18, 27, 36, 45, 54, 63, 72, 81))
use gen_stream method from chapter 9 to fill cell with zero if value not returned by generator for some cell
Class signature:

class Matrix:
    def __init__(self, rows, columns, gen)
    def mult(self, other)
    def mult_scalar(self, scalar)
    def sum(self, other)
    def subt(self, other)
    def transpose(self)
    def __repr__(self)
If some operation can't be done (due to incompatible matrix sizes) ValueError exception (see docs.python.org/3/library... should be thrown.

Example:
def gen():
    yield (0,0,1)
    yield (0,1,2)
    yield (1,0,1)
    yield (1,2,1)
m = Matrix(2,3,gen)
print(m)
(1, 2, 0)
(1, 0, 1)
m = m.mult(m.transpose())
print(m)
(5, 1)
(1, 2)

Уже сделал умножение на другую матрицу, умножение на скаляр, дополнение, вычитание и перенос, кол-во строк и колонок. Нужно сделать третий пункт с генератором. Код прилагаю
Категория

Похожие проекты

safe 
0 4
Необходимо разработать систему, которая: Подключается к API Diagnocat и iDent (через токены доступа). Получает данные о пациенте, результатах диагностики, снимках и назначениях. Автоматически формирует структурированный отчет по шаблону (включая врачей, этапы лечения, стоимость и описание процедур).......
 
0 0
Необходимо связать БД 1C:ERP с БД Outlook, MS Access, Битрикс24. Например при вводе нового сотрудника в 1С:ERP он должен автоматически появляться в вышеперечисленных БД....
4 месяца назад
 
0 1
Требуется реализация отчёта на кастомизированной 1С:УПП 1. 2, ТЗ и контрольный пример во вложении, 80% кода должно быть покрыто модульными тестами....
4 месяца назад
$7
0 2
Мне нужно копировать мой текст и вставлять в одну группу ВК с открытой стеной для публикации рекламы. Задача скрипта/сервиса/программы - примерно каждые 10 секунд брать мой текст и вставлять в эту группу. Я пробовал через одну программу, которая записывает действия мышки и потом повторяет, но она как-то......
6 месяцев назад
safe 
0 0
Написать прошивку для A94B114, используя 2 подобные рабочие прошивки. Все файлы есть....
$21
0 2
Нужно разархивировать файл архив. ujems, есть распаковщик, но выдает ошибку. Прислать пруфы(скрины)....
9 месяцев назад
safe 
0 1
Входные: Имеется скрипт по обработке email писем и добавление их в систему Redmine   Проблема: Система обработки этих писем написана некорректная и негибкая    Задача: Переписать логику обработки входящих писем, чтобы исключить их потерю при незначительных отклонениях от ожидаемой структуры....
$37
0 2
- В обязанности сотрудника входит поддержание мобильного приложения системы автоматизации бизнеса. - Работа сдельная: задачи выдаются на оценку, далее после согласования передаются на реализацию. - Заключаем договор и NDA (соглашение о неразглашении)....
$71
0 0
Информация о проекте: Проект включает в себя React Native приложение с Expo внутри которого находится webview с сайтом На устройствах с ОС IOS проблема с воспроизведением видео....
9 месяцев назад
safe 
0 0
Разрабатываю десктопные программы на языке Java,  а так же Java + SQL....
 
0 6
  1. Чтобы можно было писать описание события (без заголовка) - превью в списке берется N количества букв с начала. (в списке писать дату события и сколько осталось до него) . Выставление даты и времени напоминания и ИНТЕРВАЛА ПОВТОРА ОТ 1 МИНУТЫ! Выставлять количество повторов, далее напоминания прекращаются.......
safe 
0 5
Сайт arg2028t. beget. tech/. Нужно сделать вот такой калькулятор. airprint. by/outdoor/wide-format. и еще некоторые доработки....
safe 
0 7
Краткое описание: Мы ищем исполнителя для тестирования функционала мобильного приложения на платформе Android. Задача включает проверку основных функций приложения, таких как работа комнаты, передача видео, звука и чата, а также создание подробной отчетности о найденных ошибках.   Требования к исполнителю:......
safe 
0 12
Разработка чат-бота под ваши нужды....
$143
0 1
Oпpocы (1008pyб/чaс) Заходитe на сaйт: gonsù....
1 год назад
 
0 4
Требуется создать скрипт для premiere pro. Данная суть скрипта: в выделеном бине нужно что бы автоматически проставлялся in out ровно по серидине файла так что бы выделенная область была длиной 3 секунды. И требуется кнопка что бы работало через окно expressions. Проблема текущего в том что он не работает......
 
0 2
Нужно создать приложения под гемблинг/беттинг, на котлин. Приложение должно работать Firebase. Детали вышлю при обсуждение....
$21
0 4
Нужно разархивировать файл archive. ujems, есть распаковщик, но выдает ошибку. Прислать пруфы  ....
1 год назад
safe 
0 3
Разработать впн сервис ( Приложения на ios и android + сайт для оплаты подписки). Настройка Серверов. Оплата по договоренности. Работаем черед безопасную сделку....
1 год назад
Смотреть все