Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Полином 
:(
    Опции темы
Alfmaster
Дата 23.10.2008, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 20.9.2008

Репутация: нет
Всего: нет



Имеется выражение (x-c1)*(x-c2)*...*(x-cn). Как программно найти коэфициенты при иксах в полиноме, получившемся в результате решения данного выражения?
PM MAIL   Вверх
maxim1000
Дата 23.10.2008, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



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

второй вариант: при раскрытии каждой скобки у нас количество слагаемых удваивается - одна половина соответствует x, вторая - (-c[i]), после раскрытия получим 2^n слагаемых, каждое из которых будет произведением элементов x и c[i] во всех комбинациях. из них можно выбрать те, у которых нужная степень x-а - их будет C(n,k) (k - степень) - и поскладывать коэффициенты (т.е. привести подобные слагаемые)

честно говоря, несмотря на то, что первый вариант решает более общую задачу, мне кажется что он всё равно будет проще - программа для второго варианта, по-моему, будет сложнее
единственное исключение - какие-то простые степени:
при x^n будет 1
при x^0 будет (-1)^n*c1*c2*...*cn
при x^1 будет -c1-c2-...-cn
но в общем виде ничего простого не видно...


--------------------
qqq
PM WWW   Вверх
Alfmaster
Дата 23.10.2008, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 20.9.2008

Репутация: нет
Всего: нет



Цитата

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


не очень понял, что значит перемножить заданные двучлены. В них же есть иксы, а мне они не известны, а следовательно программе, а как ей работать с неизвестными данными?
PM MAIL   Вверх
maxim1000
Дата 24.10.2008, 00:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



не так уж и сложно
математики очень часто оперируют формулами, в которых куча неизвестных, и зачастую успешно
например:
(4-x)*(1+x+4*x^2)=[раскрываем скобки]=4*(1+x+4*x^2)-x*(1+x+4*x^2)=4+4*x+16*x^2-x-x^2-4*x^3=[приводим подобные слагаемые]=4+3*x+15*x^2-x^3
было произведение двух полиномов, стал один
так можно сначала умножить первые два, потом результат умножить на третий и т.д. до конца

Это сообщение отредактировал(а) maxim1000 - 24.10.2008, 00:23


--------------------
qqq
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0382 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.