bestimmung des ggt zweier zahlen bestimmung nach definition –implementierung
DESCRIPTION
Bestimmung des ggT zweier Zahlen Bestimmung nach Definition –Implementierung Euklidscher Algorithmus – Implementierung Aufwand – Effizienz von Algorithmen Erweiterung der Klasse Mathematik die Methode ggt(int a, int b). Konsolen-Eingabe der Zahlen, deren ggT bestimmt werden soll. - PowerPoint PPT PresentationTRANSCRIPT
Informatik Kurse 11-13 1
© 2004 Pohlig
Bestimmung des ggT zweier Zahlen
Bestimmung nach Definition –Implementierung
Euklidscher Algorithmus – Implementierung
Aufwand – Effizienz von Algorithmen
Erweiterung der Klasse Mathematik
die Methode ggt(int a, int b)
Informatik Kurse 11-13 2
© 2004 Pohlig
Übung Nr. 1 (Aufgabenblatt)
import info1.*;public class GgT1{ public static void main(String[] args){ int ggT = 1; System.out.print("erste Zahl: "); int a = Console.in.readInt(); System.out.print("zweite Zahl: "); int b = Console.in.readInt(); for (int i = 1; i <= Math.min(a,b); i++){ if ((a%i==0)&&(b%i==0)) ggT = i; } System.out.println(ggT); }}
Lösung: Variante 1 Konsolen-Eingabe der Zahlen, deren ggT bestimmt werden soll.
Prüft mit der 1 beginnend, ob i die Zahlen a und b restlos teilt. Ende bei der Kleineren der beiden.
Teilt i a und b restlos, so kommt i als ggT in Frage. Der letzte i-Wert ist der gesuchte ggT. Er wird am Schluss ausgegeben.
Informatik Kurse 11-13 3
© 2004 Pohlig
Test
Geben Sie für a den Wert 162019746
und für
B den Wert 115720390 ein
Es dauert eine geraume Zeit, bis das Ergebnis erscheint.
Wir bauen in unser Programm eine Stoppuhr ein, die die Zeit stoppt, die zur Durchführung des Algorithmus‘ benötigt wird.
Wir benutzen dazu ein Objekt der Klasse StoppUhr. Benutze deren Methoden starten() und stoppen().
Wenn das Objekt eineStoppuhr heißt. Lässt sich gestoppte Zeit mit System.out.println(eineStoppUhr) auf dem Bildschirm ausgeben.
Informatik Kurse 11-13 4
© 2004 Pohlig
Variante 2
eineStoppUhr.starten(); for (int i = 1; i <= Math.min(a,b); i++){ if ((a%i==0)&&(b%i==0)) ggT = i; } eineStoppUhr.stoppen(); System.out.println(ggT); System.out.println(eineStoppUhr);
Starten und Stoppen der StoppUhr
Ausgabe der gestoppten Zeit
StoppUhr eineStoppUhr = new StoppUhr();…
Deklarartion und Erzeugen eines StoppUhr-Objekts
Informatik Kurse 11-13 5
© 2004 Pohlig
Effizienz prüfen
Informatik Kurse 11-13 6
© 2004 Pohlig
Euklid
Lebensdaten: ca. 365 – ca. 300
Möglicherweise verbirgt sich hinter dem Namen Euklid mehrere Personen.
13 Bücher zu den Elementen zusammengefasst.
Axiomatischer Aufbau der Mathematik.
Formulierung von Algorithmen und deren Beweise
Informatik Kurse 11-13 7
© 2004 Pohlig
Raffael Raffael (1483-1520: Die Schule von Athen, Vatikanische Museen)
Euklid unterrichtet seine Schüler. Als Vorlage für Euklid diente Raffel das Portrait von Bramante, einem der Bauleiter des Peterdomes in Rom
Informatik Kurse 11-13 8
© 2004 Pohlig
Der erweiterte Euklidsche Algorithmus
Gesucht ggT(792,75)
792 = 75 +10 . 42
2 . + 0
75 = 42 1 . + 33
42 = 33 1 . + 9
33 = 9 3 . + 6
9 = 6 1 . + 3
6 = 3
=3 eineStoppUhr.starten(); int r; do{ r = a%b; a = b; b = r; } while(b!=0);a b r
Informatik Kurse 11-13 9
© 2004 Pohlig
Effizienz prüfen
Informatik Kurse 11-13 10
© 2004 Pohlig
Effiziente Methode in die Klasse Mathematik übernehmen
public static int ggT(int a, int b){ int ggT = 1; int r; do{ r = a%b; a = b; b = r; } while(b!=0); return a;}
import info1.*; public class GgTTest { public static void main (String[] args) { System.out.print("1. Zahl: "); int a = Console.in.readInt(); System.out.print("2. Zahl: "); int b = Console.in.readInt(); System.out.println("der ggT("+a+","+b+") ist: "+ Mathematik.ggT(a,b)); } }