ilnar-geekbrains / Test_11_18

2 stars 94 forks source link

Выполнил тестовое задание #106

Closed mrpartynick closed 1 year ago

mrpartynick commented 2 years ago

Выбрал задание №2 ( перемножение полиномов ). В качестве языка для выполнения задачи решил использовать Swift.

Принцип работы алгоритма. Индекс коэффициента в каждом из массивов соответствует его степени. Поэтому я перебираю массивы во вложенном цикле через индексы, при чем во внешнем цикле перебирается массив с наименьшим количеством элементов ( просто нам по-человечески удобнее умножать меньший полином на больший ). Перемножаю элементы и смотрю на степень получившегося произведения ( складывая индексы перемноженных элементов ), складываю результат с результатом, хранящимся в итоговом массиве по такому индексу и записываю результат в итоговый массив по этому индексу ( так реализован механизм сложения подобных членов ). Затем вывожу получившийся массив.

Сложность алгоритма: O(n*m), где n и m - размеры входных массивов.