LINUX.ORG.RU

Полином


0

0

Добрый день! Есть задание - описать на языке C++ полином,базовыые действия с ним(сложение полиномов,умножение,вычитание и т.п.), память выделяется динамически. С с++ я знаком не очень хорошо,поэтому прошу НЕ написать за меня прогу, а кинуть несколько по возможности идей - какие классы придумать, как их взаимосвязать. Да, еще должны присутствовать шаблоны ;)

anonymous

Шаблонный класс Polynom, тип шаблона соотствует типу коэффициентов полинома.
Поля:
  vector coeffs;
Операторы:
  operator=, operator+, operator-, operator[], operator+=, operator-=, operator*, operator*=, operator(), далее по вкусу

все операторы должны принимать в качестве аргумента ссылку на объект типа Polynom, некоторые также должны работать с аргументами типа double.

Не помешает оператор operator<<(ostream&, const Polynom<T>&)

phoenix ★★★★
()
Ответ на: комментарий от vilfred

> и как ты собрался складывать полном Лежандра с полиномом Чебышева?

Зачот :)

А как сложить простое число с четным?

anonymous
()
Ответ на: комментарий от anonymous

нееее... одно дело он численно сложит, а другое дело аналитически. Хотя это абсурдно, вообще-то, но я подумал, что чел решил складывать именно это...

vilfred ☆☆
()
Ответ на: комментарий от phoenix

> работать с аргументами типа double.

А че, с сегоднешего дня указом Дж Буша число перестало быть полиномом нулевой степени?

anonymous
()
Ответ на: комментарий от anonymous

anonymous (*) (16.01.2006 0:10:47):

> vilfred меня правильно понял - именно численно

Просветите неуча, что такое "численное сложение полиномов"?

(Кстати, над каким кольцом полиномы? А то "cложение полиномов,умножение,вычитание..." везде канает, а вот с "...и т.п." могут быть проблемы -- с делением, например, напряженка -- например, полиномы над рациональными числами делятся Евклидом, а над целыми -- нет)

Die-Hard ★★★★★
()
Ответ на: комментарий от vilfred

vilfred:

> и как ты собрался складывать полном Лежандра с полиномом Чебышева?

А в чем проблема-то?

Die-Hard ★★★★★
()
Ответ на: комментарий от Abnormal

> Агащазблин. А что с дырявыми (sparse) полиномами делать бушь?

Нафиг они нужны, если оптимизация не требуется?

anonymous
()
Ответ на: комментарий от Die-Hard

> Кстати, над каким кольцом полиномы?

> могут быть проблемы -- с делением, например, напряженка -- например, полиномы над рациональными числами делятся Евклидом, а над целыми -- нет

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

И делятся АФАИК не евклидом, а по схеме Горнера.

anonymous
()
Ответ на: комментарий от anonymous

anonymous (*) (16.01.2006 17:00:30):

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

Схем Горнера -- про то, как _вычислять_ полиномы.

Die-Hard ★★★★★
()
Ответ на: комментарий от anonymous

anonymous (16.01.2006 16:56:57):

>> Агащазблин. А что с дырявыми (sparse) полиномами делать бушь?

>Нафиг они нужны, если оптимизация не требуется?

Дырявые полиномы -- одна из наиболее часто возникающих проблем. Даже Кнут во втором томе настоятельно рекомендует для представления полиномов пользоваться списками, а не массивами,

Die-Hard ★★★★★
()

2anonymous (*) (15.01.2006 18:35:57):

Почитай Кнута, второй том, первые 2 страницы главы 4.6, и пройди по ссылке на раздел 2.2.4.

Всего неск. страниц, и вопросов поубавится.

Die-Hard ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.