Очень рекомендуем взять этот проект для новичков, так как он дает важные и полезные базовые знания.
Есть два базовых проекта — написание собственного класса и применение инструментов анализа данных к выбранному датасету. В сумме за оба проекта можно получить не больше 11 баллов.
О создании своих классов и библиотеках numpy/pandas мы будем говорить на семинарах позднее, поэтому оба проекта можно выбрать ко второму дедлайну (14.12). Подробное описание проектов будет составлено позже.
В этой задаче вам нужно реализовать класс Polynomial
для работы с многочленами. Методы, которые будут проверяться в задаче уже определены в файле polynomial.py
. Вам не запрещается добавлять свои функции, переменные или методы, однако запрещается менять названия предоставленных методов. Разрешается использовать только стандартную библиотеку Python.
__init__
позволяет построить многочлен__repr__
, который будет возвращать строку вида: Polynomial <список коэффициентов>
__str__
, возвращающий строковое представление объекта. Многочлен должен выводиться начиная от старшей степени. Должны быть приведены подобные, отсутствовать нулевые коэффициенты, а также не должно быть единичных коэффициентов и степеней. Примеры:+, - (в том числе унарный)
. Также должны поддерживаться арифметические операции с числами.==
для сравнение многочленов на равенство между собой и с числами__call__
позволяющий вычислить значение многочлена в точкеdegree
возвращающий степень многочлена*
, в том числе и для умножения на числа.%
, в том числе и для взятия отстатка при делении на числа.gcd
позволяющий вычислить НОД двух многочленов__iter__
и __next__
позволяющие проитерироваться по многочлену. На каждом шаге итерации должна возвращаться пара вида (степень, коэффициент)