Выбрал задание №2 ( перемножение полиномов ).В качестве языка для выполнения задачи решил использовать Swift.
Принцип работы алгоритма.
Индекс коэффициента в каждом из массивов соответствует его степени. Поэтому я перебираю массивы во вложенном цикле через индексы, при чем во внешнем цикле перебирается массив с наименьшим количеством элементов ( просто нам по-человечески удобнее умножать меньший полином на больший ). Перемножаю элементы и смотрю на степень получившегося произведения ( складывая индексы перемноженных элементов ), складываю результат с результатом, хранящимся в итоговом массиве по такому индексу и записываю результат в итоговый массив по этому индексу ( так реализован механизм сложения подобных членов ). Затем вывожу получившийся массив.
Сложность алгоритма: O(n*m), где n и m - размеры входных массивов.
Выбрал задание №2 ( перемножение полиномов ). В качестве языка для выполнения задачи решил использовать Swift.
Принцип работы алгоритма. Индекс коэффициента в каждом из массивов соответствует его степени. Поэтому я перебираю массивы во вложенном цикле через индексы, при чем во внешнем цикле перебирается массив с наименьшим количеством элементов ( просто нам по-человечески удобнее умножать меньший полином на больший ). Перемножаю элементы и смотрю на степень получившегося произведения ( складывая индексы перемноженных элементов ), складываю результат с результатом, хранящимся в итоговом массиве по такому индексу и записываю результат в итоговый массив по этому индексу ( так реализован механизм сложения подобных членов ). Затем вывожу получившийся массив.
Сложность алгоритма: O(n*m), где n и m - размеры входных массивов.