![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Задача на массивы [D7, XP]
Shell © (2006-11-22 19:16:00)Здравствуйте, подскажите пожалуйста как решить вот такую задачу:
Многочлен степени N задан своими коэффициентами an, an-1, an-2, …, a2, a1, a0 (коэффициент ai стоит при x в степени i):
Вот формула многочлена: P{x}=AnXn+An-1Xn-1+...+A2X2+AX+A(Xn-степень, An-номер многочлена)
Помогите написать программу для вычисления P(x): число N, все коэффициенты и x вводятся с клавиатуры, N <= 20. Коэффициенты и x - вещественные числа.
Зарание благодарен Вам за помошь.
inkvizitor (2006-11-28 14:03:00) [1]
> Shell (26.11.06 12:50) [37]
рекурентную формулу найди сначала.
там проще будет.
Jeer (2006-11-28 13:34:00) [2]
> Shell (27.11.06 11:56) [46]
>
> >Схема Горнера и есть. Зря помогли. :(
> Cхема Горнера Нужна для нахождения X а не для суммы многочлена,
> так что она не причём
Схема Горнера - это метод вычисления многочленов.
Pn(x) = ((((.. + A2)*x + A1)*x + A0
К методам же относятся метод произведений, интерполяционная схема Ньютона, методы Мотцкина - Белаги - Пана.
Думкин (2006-11-28 13:23:00) [3]> palva © (28.11.06 13:10) [49]
Тогда я просто упустил немного, а затем исправился. Впрочем, пустое.
Главное, что автору просто надо знать альнертнативную запись многочлена и эта запись известна как схема Горнера. По крайней мере мне. :)
Но тут уже говорят, что с ее помощью ищется некий странный Х, а вовсе не частное или произведение, а уже тем более не сумма многочлена. :)
palva (2006-11-28 13:10:00) [4]
> Думкин © (23.11.06 11:18) [19]
> Как же соотносятся с сабжем ваши слова - не понимаю.
Не заглядывал в ветку, поэтому не видел вашего вопроса. Когда я прочитал ваше [14], что схема Горнера не причем, я полез в Яндекс и увидел, что почти везде схема Горнера определяется как способ деления многочлена f(x) на одночлен x - a. Я подумал что вас (и многих, наверное, тоже) ввело в заблуждение именно это, поэтому привел соображение, которое оказалось формулировкой теоремы Безу.
Думкин (2006-11-28 12:24:00) [5]
> Shell (27.11.06 11:56) [46]
Что такое сумма многочлена?
TUser (2006-11-28 12:18:00) [6]
> Shell (27.11.06 11:56) [46]
Просто с вики ошибка Ж)
Shell (2006-11-27 11:56:00) [7]>Схема Горнера и есть. Зря помогли. :(
Cхема Горнера Нужна для нахождения X а не для суммы многочлена, так что она не причём
Sania (2006-11-27 09:01:00) [8]Если вводятся сперва X, а потом многочлен, то можно на ходу считать,
тогда для любого к-ва иксов прога будет считать "мгновенно" :)
Вроде так:
Program MN;
uses CRT;
var Res,x,C:Real;
i,count:integer;
Begin
WriteLN("X=");
// Можно массив иксов
ReadLN(x);
WriteLN("Введите степень");
ReadLN(Count);
WriteLN("Введите 1 коэф");
ReadLN(C);
RES=c;
for i=count-1 to downto 0 do
Begin
WriteLN("Введите ",i," коэф");
ReadLN(C);
// Можно массив X обрабатывать
Res:=Res*X+C;
End;
// Выводим
WriteLN(res);
ReadKey;
End.
Думкин (2006-11-27 06:26:00) [9]Схема Горнера и есть. Зря помогли. :(
TUser (2006-11-27 05:44:00) [10]result := A[n];
for i := n-1 downto 0 do begin
result = result * X
result = result + A[i]
end;
SergP (2006-11-26 22:16:00) [11]
> [41] ShellX (26.11.06 18:43)
> Не ну серьёзно помогите, я не думаю что эта задача очень
> сложная для Вас, а для меня она покачто не из лёгких.
Ну а думать тогда кто будеть?
Ладно... Скажем так: возведение в степень тебе нафик не нужно...
Так как такой код:
...
for i:=1 to num+1 do
begin
an=a[i];
p:=p+an*x^(i-1);
end;
...
Можно заменить таким:
...
k:=1;
for i:=1 to num+1 do
begin
an=a[i];
p:=p+an*k;
k:=k*x;
end;
...
ShellX (2006-11-26 18:43:00) [12]Не ну серьёзно помогите, я не думаю что эта задача очень сложная для Вас, а для меня она покачто не из лёгких.
Palladin (2006-11-26 18:36:00) [13]:) Умри достойно, как мужчина!
ShellX (2006-11-26 17:58:00) [14]Я всё таки не могу понятькак правильно будет выглядит прога, пожалуйста мастера помогите, мне очень нужна эта программа.Задание нужно сдать к среде, времени мало, пожалуйста помогите!
Anatoly Podgoretsky (2006-11-26 16:55:00) [15]> Shell (26.11.2006 12:50:37) [37]
Это си, первое умножение, а второе сложение.
Shell (2006-11-26 12:50:00) [16]result *= X
result += Ai
Я что то не пойму что значат знак + и *
И как это работает
Anatoly Podgoretsky (2006-11-26 12:35:00) [17]> Shell (26.11.2006 12:29:35) [35]
Это и есть пример, две последнии строчки перевести в Паскалевскую форму.
Shell (2006-11-26 12:29:00) [18]TUser ©
Можно чуть по подробнее а то я не могу понять.
Если можно то покажите пример,а то очень нужно сделать программу.
Shell (2006-11-26 12:27:00) [19]TUser ©
Можно чуть по подробнее а то я не могу понять.
Если можно то покажите пример
TUser (2006-11-24 19:13:00) [20]Алгоритм кого-то есть для этого.
result := An;
for i := n-1 downto 0 do
result *= X
result += Ai