Перемножение полиномов? Необходимо на C# перемножить два полинома вида a0*b^0+a1*b^1+... Могут быть произвольной длины. Хранятся как массив коэффициентов. Сами коэффициенты могут быть от 1 до ulong.MaxValue (больше шарп не позволяет) - целые числа. Так же можно использовать только system и коллекции.
Проблема в том, что если тупо перемножать, возможно переполнение памяти.Как перемножить полиномы без ошибки памяти и какой алгоритм самый быстрый?
P.s.
Это не домашнее задание или курсовая работа!

21 Авг 2019 в 06:07
203 +1
0
Ответы
1

Для перемножения двух полиномов без проблем с переполнением памяти на C#, можно воспользоваться следующим алгоритмом:

Создать массив для хранения результирующего полинома, размер которого равен сумме длин исходных полиномов минус один.

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

После умножения всех членов первого полинома на все члены второго полинома, получим результирующий полином.

Примерный код реализации:

public ulong[] MultiplyPolynomials(ulong[] poly1, ulong[] poly2)
{
int len1 = poly1.Length;
int len2 = poly2.Length;
ulong[] result = new ulong[len1 + len2 - 1];
for (int i = 0; i < len1; i++)
{
for (int j = 0; j < len2; j++)
{
result[i + j] += poly1[i] * poly2[j];
}
}
return result;
}

Этот алгоритм является наиболее простым и эффективным способом перемножения полиномов на C#.

20 Апр в 13:23
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 548 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир