Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Деление многочленов с остатком



Для многочленов, как и для целых чисел, существует алгоритм деления с остатком.

Теорема о делении с остатком. Для любых двух многочленов f(x) и g(x) можно найти такие многочлены q(x) и r(x, что

f(x)=g(x)q(x)+r(x),

причем степень r(x) меньше степени g(x) или же r(x)=0. Многочлены q(x) и r(x), удовлетворяющие этому условию, определяются однозначно.

Если разности f(x)-r(x) и обе делятся на g(x), то их разность также делится на g(x). Если бы многочлен s(x) был ненулевым, то он имел бы степень меньшую, чем g(x), и не мог бы тогда делится на g(x). Следовательно, s(x)=0, так что .

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

Пример. Найти частный и остаток от деления на .

1. и

|

Частным от деления на является многочлен , остатком – .

2. и

Частным от деления на является многочлен , остатком – .

Это правило в общем виде можно сформулировать так:

1) разделить старший член многочлена f(x) на старший член g(x) и записать результат «под длинной стороной угла»;

2)умножить g(x) на результат действия 1) и записать произведение под многочленом f(x);

3) вычесть из f(x) записанный под ним многочлен;

4) проверить имеет ли результат действия 3) степень меньшую, чем степень g(x); если да (или результат нулевой), то он является остатком, а под длинной стороной угла записано частное, если нет, то применить к этому результату действие 1), рассматривая его как многочлен f(x).

Я составила программу для нахождения частного и остатка.

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Grids;

type

TForm1 = class(TForm)

SGd1: TStringGrid;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Edit6: TEdit;

Button1: TButton;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

i,n,m,step,j,f:integer;

d,l,s:string;

a,a2,b,b2,k:array[0..100] of integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

begin

n:=StrToInt(Edit1.Text);

m:=StrToInt(Edit2.Text);

for i:=n+1 downto 1 do begin

a[i]:=StrToInt(SGd1.Cells[n-(i-1),0]);

end;

for i:=m+1 downto 1 do begin

b[i]:=StrToInt(SGd1.Cells[m-(i-1),1]);

end;

s:='f1(x)=';

for i:=n+1 downto 1 do begin

if a[i]<>0 then begin if(a[i-1]<0)or(i=1) then begin

str(a[i],l);

str(i-1,d);

s:=s+l+'x^'+d;

end

else begin

str(a[i],l);

str(i-1,d);

s:=s+l+'x^'+d+'+';

end;

end;

end;

Edit3.Text:=s;

s:='f2(x)=';

for i:=m+1 downto 1 do begin

if b[i]<>0 then begin if(b[i-1]<0)or(i=1) then begin

str(b[i],l);

str(i-1,d);

s:=s+l+'x^'+d;

end

else begin

str(b[i],l);

str(i-1,d);

s:=s+l+'x^'+d+'+';

end;

end;

end;

Edit4.Text:=s;

for j:=N+1 downto 1 do begin

a2[j]:=a[j];

b2[j]:=0;

end;

step:=n-m;

f:=n+2;

for i:=step+1 downto 1do begin

f:=f-1;

k[i]:=a2[f];

for j:=m+1 downto 1do begin

b2[j]:=k[i]*b[j];

end;

for j:=f downto 1 do begin

a2[j]:=a2[j]*b[m+1];

end;

for j:=f downto 1 do begin

a2[j]:=a2[j]-b2[j+1-i];

b2[j]:=0;

end;

end;

s:='h(x)=';

for i:=f downto 1 do begin

if k[i]<>0 then begin if(k[i-1]<0)or(i=1) then begin

str(k[i],l);

str(i-1,d);

s:=s+l+'x^'+d;

end

else begin

str(k[i],l);

str(i-1,d);

s:=s+l+'x^'+d+'+';

end;

end;

end;

Edit5.Text:=s;

s:='r(x)=';

for i:=n downto 0 do begin

if a2[i]<>0 then begin if(a2[i-1]<0)or(i=1) then begin

str(a2[i],l);

str(i-1,d);

s:=s+l+'x^'+d;

end

else begin

str(a2[i],l);

str(i-1,d);

s:=s+l+'x^'+d+'+';

end;

end;

end;

Edit6.Text:=s;

end;

end.





Дата публикования: 2015-01-10; Прочитано: 377 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.014 с)...