verbesserter Eukl. Algorithmus < Maple < Mathe-Software < Mathe < Vorhilfe
|
Aufgabe | Modifizieren Sie den euklidischen Algorithmus dahingehend, dass der vorkommende Rest auch negativ sein kann aber [mm] |r_i|< [/mm] 0.5 [mm] |r_{i-1}| [/mm] ist. |
Hi,
also mein euklidische Algorithmus sieht wie folgt aus:
r[1]:=a; r[2]:=b;i:=2;
while r[i]<>0 do
r[i+1]:=r[i]*ceil((r[i-1])/(r[i]))-r[i-1];
abs(r[i])<0.5*r[i-1];
i:=i+1:
print(remainder[i-2] = r[i])
end do;
print(hcf=r[i-1]);
end proc;
Das Problem ist jetzt, dass die Zeile abs(r[i])<0.5*r[i-1]; im prinzip ja nichts bewirkt. Wie kann ich die Bedingung fuer die groesse des restes mit einfließen lassen ?
lg
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 18:51 Mi 18.11.2009 | Autor: | abakus |
> Modifizieren Sie den euklidischen Algorithmus dahingehend,
> dass der vorkommende Rest auch negativ sein kann aber
> [mm]|r_i|<[/mm] 0.5 [mm]|r_{i-1}|[/mm] ist.
> Hi,
>
> also mein euklidische Algorithmus sieht wie folgt aus:
>
> r[1]:=a; r[2]:=b;i:=2;
> while r<>0 do
> r[i+1]:=r*ceil((r[i-1])/(r))-r[i-1];
> abs(r)<0.5*r[i-1];
> i:=i+1:
> print(remainder[i-2] = r)
> end do;
> print(hcf=r[i-1]);
> end proc;
>
> Das Problem ist jetzt, dass die Zeile abs(r)<0.5*r[i-1];
> im prinzip ja nichts bewirkt. Wie kann ich die Bedingung
> fuer die groesse des restes mit einfließen lassen ?
>
> lg
Hallo,
Falls der Rest r bei der Teilung von a durch b größer ist als b/2, wird vom Rest nochmals der Wert b subtrahiert.
Beispiel:
23:5=4 Rest 3
3 ist größer als 5/2, deshalb 3 um 5 verringern
Wir nehmen nicht mehr 4*5+3,
sondern 5*5-2.
Gruß Abakus
|
|
|
|
|
Hallo,
danke für deine antwort. meine frage bezog sich darauf, wie ich maple genau das mittteile, auf dem papier ist mir das klar, ich kriege es nur nich eingebunden. Wie sag ich maple, dass es das tun soll, also [mm] r_i<0.5*r_{i-1} [/mm] sein lassen ?
lg
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 20:43 Mi 18.11.2009 | Autor: | abakus |
> Hallo,
>
> danke für deine antwort. meine frage bezog sich darauf,
> wie ich maple genau das mittteile, auf dem papier ist mir
> das klar, ich kriege es nur nich eingebunden. Wie sag ich
> maple, dass es das tun soll, also [mm]r_i<0.5*r_{i-1}[/mm] sein
> lassen ?
Hallo,
gibt es da keinen "IF ... THEN ..." Befehl oder etwas in dieser Art (eventuell auch "CASE ....) ?
>
> lg
|
|
|
|