Èíôîðìàòèêà íà ïÿòü Î íàñ
 Äîáàâèòü â èçáðàííîå
5byte.ru
 Òåîðèÿ
 8 êëàññ
 9 êëàññ
 10 êëàññ
 11 êëàññ
Çàäàíèÿ
 8 êëàññ
 9 êëàññ
 10 êëàññ
 11 êëàññ
Êíèãè
Òåñòû
ÅÃÝ
Turbo Pascal 7
 Îïèñàíèå
 Çàäà÷è
HTML
Ðåôåðàòû

Àëãîðèòì Åâêëèäà

Íàèáîëüøèé îáùèé äåëèòåëü

Ðàññìîòðèì ñëåäóþùóþ çàäà÷ó: òðåáóåòñÿ ñîñòàâèòü ïðîãðàììó îïðåäåëåíèÿ íàèáîëüøåãî îáùåãî äåëèòåëÿ (ÍÎÄ) äâóõ íàòóðàëüíûõ ÷èñåë.

Âñïîìíèì ìàòåìàòèêó. Íàèáîëüøèé îáùèé äåëèòåëü äâóõ íàòóðàëüíûõ ÷èñåë - ýòî ñàìîå áîëüøîå íàòóðàëüíîå ÷èñëî, íà êîòîðîå îíè äåëÿòñÿ íàöåëî. Íàïðèìåð, ó ÷èñåë 12 è 18 èìåþòñÿ îáùèå äåëèòåëè: 2, 3, 6. Íàèáîëüøèì îáùèì äåëèòåëåì ÿâëÿåòñÿ ÷èñëî 6. Ýòî çàïèñûâàåòñÿ òàê:

ÍÎÄ(12, 18) = 6.

Îáîçíà÷èì èñõîäíûå äàííûå êàê Ì u N. Ïîñòàíîâêà çàäà÷è âûãëÿäèò ñëåäóþùèì îáðàçîì:
Äàíî: Ì, N
Íàéòè: ÍÎÄ(Ì, N).

 äàííîì ñëó÷àå êàêîé-òî äîïîëíèòåëüíîé ìàòåìàòè÷åñêîé ôîðìàëèçàöèè íå òðåáóåòñÿ. Ñàìà ïîñòàíîâêà çàäà÷è íîñèò ôîðìàëüíûé ìàòåìàòè÷åñêèé õàðàêòåð. Íå ñóùåñòâóåò ôîðìóëû äëÿ âû÷èñëåíèÿ ÍÎÄ(Ì, N) ïî çíà÷åíèÿì Ì è N. Íî çàòî äîñòàòî÷íî äàâíî, çàäîëãî äî ïîÿâëåíèÿ ÝÂÌ, áûë èçâåñòåí àëãîðèòìè÷åñêèé ñïîñîá ðåøåíèÿ ýòîé çàäà÷è. Íàçûâàåòñÿ îí àëãîðèòìîì Åâêëèäà.

Èäåÿ àëãîðèòìà Åâêëèäà

Èäåÿ ýòîãî àëãîðèòìà îñíîâàíà íà òîì ñâîéñòâå, ÷òî åñëè M>N, òî

ÍÎÄ(Ì, N) = ÍÎÄ(Ì - N, N).

Èíà÷å ãîâîðÿ, ÍÎÄ äâóõ íàòóðàëüíûõ ÷èñåë ðàâåí ÍÎÄ èõ ïîëîæèòåëüíîé ðàçíîñòè (ìîäóëÿ èõ ðàçíîñòè) è ìåíüøåãî ÷èñëà.

Ëåãêî äîêàçàòü ýòî ñâîéñòâî. Ïóñòü Ê - îáùèé äåëèòåëü Ì u N (M> N). Ýòî çíà÷èò, ÷òî Ì = mÊ, N = nÊ, ãäå m, n - íàòóðàëüíûå ÷èñëà, ïðè÷åì m > n. Òîãäà Ì - N = Ê(m - n), îòêóäà ñëåäóåò, ÷òî Ê - äåëèòåëü ÷èñëà Ì - N. Çíà÷èò, âñå îáùèå äåëèòåëè ÷èñåë Ì è N ÿâëÿþòñÿ äåëèòåëÿìè èõ ðàçíîñòè Ì - N, â òîì ÷èñëå è íàèáîëüøèé îáùèé äåëèòåëü.

Âòîðîå î÷åâèäíîå ñâîéñòâî:

ÍÎÄ(Ì, Ì) = Ì.

Äëÿ "ðó÷íîãî" ñ÷åòà àëãîðèòì Åâêëèäà âûãëÿäèò òàê:

1) åñëè ÷èñëà ðàâíû, òî âçÿòü ëþáîå èç íèõ â êà÷åñòâå îòâåòà, â ïðîòèâíîì ñëó÷àå ïðîäîëæèòü âûïîëíåíèå àëãîðèòìà;

2) çàìåíèòü áîëüøåå ÷èñëî ðàçíîñòüþ áîëüøåãî è ìåíüøåãî èç ÷èñåë;

3) âåðíóòüñÿ ê âûïîëíåíèþ ï. 1.

Ðàññìîòðèì ýòîò àëãîðèòì íà ïðèìåðå Ì=32, N=24:



Ïîëó÷èëè: ÍÎÄ(32, 24) =ÍÎÄ(8, 8) = 8, ÷òî âåðíî.

Îïèñàíèå àëãîðèòìà Åâêëèäà áëîê-ñõåìîé

Íà ðèñ. 3.12 ïðèâåäåíà áëîê-ñõåìà àëãîðèòìà Åâêëèäà.

Ðèñ. 3.12. Áëîê-ñõåìà àëãîðèòìà Åâêëèäà


Ñòðóêòóðà àëãîðèòìà - öèêë-ïîêà ñ âëîæåííûì âåòâëåíèåì. Öèêë ïîâòîðÿåòñÿ, ïîêà çíà÷åíèÿ Ì è N íå ðàâíû äðóã äðóãó.  âåòâëåíèè áîëüøåå èç äâóõ çíà÷åíèé çàìåíÿåòñÿ íà èõ ðàçíîñòü.

À òåïåðü ïîñìîòðèòå íà òðàññèðîâî÷íóþ òàáëèöó àëãîðèòìà äëÿ èñõîäíûõ çíà÷åíèé Ì = 32, N = 24.

Øàã Îïåðàöèÿ M N Óñëîâèå
1 ââîä Ì 32    
2 ââîä N   24  
3 M ¹ N     32 ¹ 24, äà
4 M>N     32>24, äà
5 M:=M-N 8    
6 M ¹ N     8 ¹ 24, äà
7 M>N     8>24, íåò
8 N:=N-M   16  
9 M ¹ N     8 ¹ 16, äà
10 M>N     8>16, íåò
11 N:=N-M   8  
12 M ¹ N     8 ¹ 8, íåò
13 âûâîä M 8    
14 êîíåö      

 èòîãå ïîëó÷èëñÿ âåðíûé ðåçóëüòàò.

Ïðîãðàììà íà Àß è íà Ïàñêàëå

Çàïèøåì àëãîðèòì íà Àß è ïðîãðàììó íà Ïàñêàëå.

àëã Åâêëèä
öåë Ì, N
íà÷
     âûâîä " Ââåäèòå Ì è N" ââîä Ì, N
     ïîêà Ì N, ïîâòîðÿòü
     íö
          åñëè M>N
          òî M:=M-N
          èíà÷å N:=N-M
          êâ
     êö
     âûâîä "ÍÎÄ=",Ì
êîí
Program Evklid;
var M, N: integer;
begin
     writeln('Ââåäèòå Ì è N');
     readln(M, N);
     while M<>N do
          begin
               if M>N
               then M:=M-N
               else N:=N-M
     end;
     write('Í0Ä=',Ì)
end.


Âîïðîñû è çàäàíèÿ

1. Âûïîëíèòå íà êîìïüþòåðå ïðîãðàììó Evklid. Ïðîòåñòèðóéòå åå íà çíà÷åíèÿõ Ì= 32, N = 24; Ì = 696, N = 234.

2. Ñîñòàâüòå ïðîãðàììó íàõîæäåíèÿ íàèáîëüøåãî îáùåãî äåëèòåëÿ òðåõ ÷èñåë, èñïîëüçóÿ ñëåäóþùóþ ôîðìóëó:

ÍÎÄ(À, B, Ñ) = ÍÎÄ(ÍÎÄ(À, Â), Ñ).

3. Ñîñòàâüòå ïðîãðàììó íàõîæäåíèÿ íàèìåíüøåãî îáùåãî êðàòíîãî (ÍÎÊ) äâóõ ÷èñåë, èñïîëüçóÿ ôîðìóëó:

À × Â = ÍÎÄ(À, Â) × ÍÎÊ(À, Â).




Индивидуалка Ирина https://ram.sibirki.org/id_9817.html район и метро - sibirki.org
 Ó Âàñ åñòü ìàòåðèàë ïèøèòå íàì
 
    Copyright © 2008    
  Top.Mail.Ru