Top Banner
Effizienz Gerd Bohlender Einstieg in die Informatik mit Java, Vorlesung vom 9.5.07 Gerd Bohlender Effizienz
89

Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Sep 17, 2018

Download

Documents

vokhue
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Effizienz

Gerd Bohlender

Einstieg in die Informatik mit Java, Vorlesung vom 9.5.07

Gerd Bohlender Effizienz

Page 2: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Ubersicht

1 Uberlegungen zur Effizienz

2 Landau-Symbole

3 Eier im Korb

4 Zyklische Ziffern

Gerd Bohlender Effizienz

Page 3: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Uberlegungen zur Effizienz

Benotigte Rechenzeit

Ausnutzung der Performance des Computers

Beispiel Parallelrechner mit p Prozessoren:Effizienz(p) = Zeit(1)

pZeit(p)

Benotigter Speicher

Aufwand des Programmierers

...

2 Beispiele

Gerd Bohlender Effizienz

Page 4: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Uberlegungen zur Effizienz

Benotigte Rechenzeit

Ausnutzung der Performance des Computers

Beispiel Parallelrechner mit p Prozessoren:Effizienz(p) = Zeit(1)

pZeit(p)

Benotigter Speicher

Aufwand des Programmierers

...

2 Beispiele

Gerd Bohlender Effizienz

Page 5: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Uberlegungen zur Effizienz

Benotigte Rechenzeit

Ausnutzung der Performance des Computers

Beispiel Parallelrechner mit p Prozessoren:Effizienz(p) = Zeit(1)

pZeit(p)

Benotigter Speicher

Aufwand des Programmierers

...

2 Beispiele

Gerd Bohlender Effizienz

Page 6: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Uberlegungen zur Effizienz

Benotigte Rechenzeit

Ausnutzung der Performance des Computers

Beispiel Parallelrechner mit p Prozessoren:Effizienz(p) = Zeit(1)

pZeit(p)

Benotigter Speicher

Aufwand des Programmierers

...

2 Beispiele

Gerd Bohlender Effizienz

Page 7: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Uberlegungen zur Effizienz

Benotigte Rechenzeit

Ausnutzung der Performance des Computers

Beispiel Parallelrechner mit p Prozessoren:Effizienz(p) = Zeit(1)

pZeit(p)

Benotigter Speicher

Aufwand des Programmierers

...

2 Beispiele

Gerd Bohlender Effizienz

Page 8: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Uberlegungen zur Effizienz

Benotigte Rechenzeit

Ausnutzung der Performance des Computers

Beispiel Parallelrechner mit p Prozessoren:Effizienz(p) = Zeit(1)

pZeit(p)

Benotigter Speicher

Aufwand des Programmierers

...

2 Beispiele

Gerd Bohlender Effizienz

Page 9: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Asymptotischer Aufwand eines Algorithmus –Landau-Symbole

Schreibweise O(g(n))Landau-Symbole (Edmund Landau, Gottingen, 1877-1938)

Die Funktion f (n) ist O(g(n)), fur n →∞, genau wenn esKonstanten n0 und M gibt mit

|f (n)| < M · |g(n)|

fur alle n > n0

Dabei ist g(n) meist eine einfache Funktion, z.B.O(n),O(n2),O(log n), ...

Gerd Bohlender Effizienz

Page 10: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Asymptotischer Aufwand eines Algorithmus –Landau-Symbole

Schreibweise O(g(n))Landau-Symbole (Edmund Landau, Gottingen, 1877-1938)

Die Funktion f (n) ist O(g(n)), fur n →∞, genau wenn esKonstanten n0 und M gibt mit

|f (n)| < M · |g(n)|

fur alle n > n0

Dabei ist g(n) meist eine einfache Funktion, z.B.O(n),O(n2),O(log n), ...

Gerd Bohlender Effizienz

Page 11: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Asymptotischer Aufwand eines Algorithmus –Landau-Symbole

Schreibweise O(g(n))Landau-Symbole (Edmund Landau, Gottingen, 1877-1938)

Die Funktion f (n) ist O(g(n)), fur n →∞, genau wenn esKonstanten n0 und M gibt mit

|f (n)| < M · |g(n)|

fur alle n > n0

Dabei ist g(n) meist eine einfache Funktion, z.B.O(n),O(n2),O(log n), ...

Gerd Bohlender Effizienz

Page 12: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Landau-Symbole – Anwendung

Angaben zum Rechenaufwand eines Algorithmus(asymptotische Komplexitat)

Angaben zum Speicherbedarf eines Algorithmus

Beispiel: n × n-Matrix (n Zeilen, n Spalten)

Speicherbedarf O(n2)

Rechenaufwand fur Addition O(n2)

Rechenaufwand fur Multiplikation O(n3)

n O(n2) O(n3)

10 100 1000100 10000 1000000

1000 1000000 1000000000

Gerd Bohlender Effizienz

Page 13: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Landau-Symbole – Anwendung

Angaben zum Rechenaufwand eines Algorithmus(asymptotische Komplexitat)

Angaben zum Speicherbedarf eines Algorithmus

Beispiel: n × n-Matrix (n Zeilen, n Spalten)

Speicherbedarf O(n2)

Rechenaufwand fur Addition O(n2)

Rechenaufwand fur Multiplikation O(n3)

n O(n2) O(n3)

10 100 1000100 10000 1000000

1000 1000000 1000000000

Gerd Bohlender Effizienz

Page 14: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Landau-Symbole – Anwendung

Angaben zum Rechenaufwand eines Algorithmus(asymptotische Komplexitat)

Angaben zum Speicherbedarf eines Algorithmus

Beispiel: n × n-Matrix (n Zeilen, n Spalten)

Speicherbedarf O(n2)

Rechenaufwand fur Addition O(n2)

Rechenaufwand fur Multiplikation O(n3)

n O(n2) O(n3)

10 100 1000100 10000 1000000

1000 1000000 1000000000

Gerd Bohlender Effizienz

Page 15: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Landau-Symbole – Rechenregeln

O(c · g(n)) = O(g(n)) fur eine Konstante c

O(g(n) + h(n)) = max(O(g(n),O(h(n))

z.B. O(2n3 + 3n2 + 24n + 799) = O(n3)

Gerd Bohlender Effizienz

Page 16: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Landau-Symbole – Rechenregeln

O(c · g(n)) = O(g(n)) fur eine Konstante c

O(g(n) + h(n)) = max(O(g(n),O(h(n))

z.B. O(2n3 + 3n2 + 24n + 799) = O(n3)

Gerd Bohlender Effizienz

Page 17: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Landau-Symbole – Rechenregeln

O(c · g(n)) = O(g(n)) fur eine Konstante c

O(g(n) + h(n)) = max(O(g(n),O(h(n))

z.B. O(2n3 + 3n2 + 24n + 799) = O(n3)

Gerd Bohlender Effizienz

Page 18: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Landau-Symbole – Einsatz zum Vergleich von Algorithmen

Beispiel: sortiere n Zahlen x0, x1, . . . , xn−1

Algorithmus 1 (Bubblesort) Algorithmus 2 (Quicksort)n O(n2) O(n log n)

2 4 24 16 88 64 24

...1000 106 10000106 1012 20 · 106

Algorithmus ist fur n = 106 etwa 100000 mal schneller.

100000 ≈ 1 Tag / 1 Sekunde

Gerd Bohlender Effizienz

Page 19: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Landau-Symbole – Einsatz zum Vergleich von Algorithmen

Beispiel: sortiere n Zahlen x0, x1, . . . , xn−1

Algorithmus 1 (Bubblesort) Algorithmus 2 (Quicksort)n O(n2) O(n log n)

2 4 24 16 88 64 24

...1000 106 10000106 1012 20 · 106

Algorithmus ist fur n = 106 etwa 100000 mal schneller.

100000 ≈ 1 Tag / 1 Sekunde

Gerd Bohlender Effizienz

Page 20: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Landau-Symbole – Vorsicht

Aber Vorsicht! Alle Aussagen gelten nur asymptotisch furn →∞, also ab einem (unbekannten) n0 und mit einem(unbekannten) Faktor M.

Fur ein”kleines“ n konnte Algorithmus 1 durchaus schneller

sein als Algorithmus 2.

Gerd Bohlender Effizienz

Page 21: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Eier im Korb - Aus einem alten Rechenbuch

Ein Mann stoßt den Korb voller Eier einer Marktfrau um. Die Eiergehen zu Bruch. Der Mann will den Schaden ersetzen und fragtwieviele Eier im Korb waren.Die Marktfrau antwortet:

”Die genaue Zahl weiß ich nicht.

Aber wenn ich immer 2 Eier aus dem Korb genommenhabe, dann blieb eines ubrig.Genauso, wenn ich immer 3, immer 4, immer 5 oderimmer 6 Eier heraus genommen habe.Aber wenn ich immer 7 Eier heraus genommen habe,dann blieb keines ubrig.“

Wieviele Eier waren (mindestens) im Korb?

Gerd Bohlender Effizienz

Page 22: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Eier im Korb - Aus einem alten Rechenbuch

Ein Mann stoßt den Korb voller Eier einer Marktfrau um. Die Eiergehen zu Bruch. Der Mann will den Schaden ersetzen und fragtwieviele Eier im Korb waren.Die Marktfrau antwortet:

”Die genaue Zahl weiß ich nicht.

Aber wenn ich immer 2 Eier aus dem Korb genommenhabe, dann blieb eines ubrig.Genauso, wenn ich immer 3, immer 4, immer 5 oderimmer 6 Eier heraus genommen habe.Aber wenn ich immer 7 Eier heraus genommen habe,dann blieb keines ubrig.“

Wieviele Eier waren (mindestens) im Korb?

Gerd Bohlender Effizienz

Page 23: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Eier im Korb - Aus einem alten Rechenbuch

Ein Mann stoßt den Korb voller Eier einer Marktfrau um. Die Eiergehen zu Bruch. Der Mann will den Schaden ersetzen und fragtwieviele Eier im Korb waren.Die Marktfrau antwortet:

”Die genaue Zahl weiß ich nicht.

Aber wenn ich immer 2 Eier aus dem Korb genommenhabe, dann blieb eines ubrig.Genauso, wenn ich immer 3, immer 4, immer 5 oderimmer 6 Eier heraus genommen habe.Aber wenn ich immer 7 Eier heraus genommen habe,dann blieb keines ubrig.“

Wieviele Eier waren (mindestens) im Korb?

Gerd Bohlender Effizienz

Page 24: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Eier im Korb - Erster Algorithmus

Teste alle Zahlen n = 1, 2, 3, ...

Beginne mit n = 1

Prufe, ob die Zahl n bei Division durch 2, 3, 4, 5, 6 den Rest1 ergibt und ob n durch 7 ohne Rest teilbar ist.

Ist dies der Fall, dann brich ab und gib das Ergebnis aus.Andernfalls erhohe n um 1 und prufe nochmal.

Gerd Bohlender Effizienz

Page 25: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Eier im Korb - Erster Algorithmus

Teste alle Zahlen n = 1, 2, 3, ...

Beginne mit n = 1

Prufe, ob die Zahl n bei Division durch 2, 3, 4, 5, 6 den Rest1 ergibt und ob n durch 7 ohne Rest teilbar ist.

Ist dies der Fall, dann brich ab und gib das Ergebnis aus.Andernfalls erhohe n um 1 und prufe nochmal.

Gerd Bohlender Effizienz

Page 26: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Eier im Korb - Erster Algorithmus

Teste alle Zahlen n = 1, 2, 3, ...

Beginne mit n = 1

Prufe, ob die Zahl n bei Division durch 2, 3, 4, 5, 6 den Rest1 ergibt und ob n durch 7 ohne Rest teilbar ist.

Ist dies der Fall, dann brich ab und gib das Ergebnis aus.Andernfalls erhohe n um 1 und prufe nochmal.

Gerd Bohlender Effizienz

Page 27: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Eier im Korb - Erster Algorithmus

Teste alle Zahlen n = 1, 2, 3, ...

Beginne mit n = 1

Prufe, ob die Zahl n bei Division durch 2, 3, 4, 5, 6 den Rest1 ergibt und ob n durch 7 ohne Rest teilbar ist.

Ist dies der Fall, dann brich ab und gib das Ergebnis aus.Andernfalls erhohe n um 1 und prufe nochmal.

Gerd Bohlender Effizienz

Page 28: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Eier im Korb - Erstes Java-Programm

public class Eier {

public static void main (String [] args){int i=0;do i++;while (i%2!=1 || i%3!=1 || i%4!=1 ||

i%5!=1 || i%6!=1 || i%7!=0);System.out.println("Es waren " + i +

" Eier im Korb.");}

}

Gerd Bohlender Effizienz

Page 29: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Eier im Korb - Zweiter Algorithmus

Es kommen nur Zahlen in Frage, die bei Division durch 2, 3, 4, 5,6 den Rest 1 ergeben.Mit etwas Mathematik stellt man fest: Es kommen nur Zahlen inFrage, die bei Division durch kgV(2, 3, 4, 5, 6) = 60 den Rest 1ergeben.

Also: Teste alle Zahlen n = 1, 61, 121...

Beginne mit n = 1

Prufe, ob n durch 7 ohne Rest teilbar ist.

Ist dies der Fall, dann brich ab und gib das Ergebnis aus.Andernfalls erhohe n um 60 und prufe nochmal.

Gerd Bohlender Effizienz

Page 30: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Eier im Korb - Zweiter Algorithmus

Es kommen nur Zahlen in Frage, die bei Division durch 2, 3, 4, 5,6 den Rest 1 ergeben.Mit etwas Mathematik stellt man fest: Es kommen nur Zahlen inFrage, die bei Division durch kgV(2, 3, 4, 5, 6) = 60 den Rest 1ergeben.Also: Teste alle Zahlen n = 1, 61, 121...

Beginne mit n = 1

Prufe, ob n durch 7 ohne Rest teilbar ist.

Ist dies der Fall, dann brich ab und gib das Ergebnis aus.Andernfalls erhohe n um 60 und prufe nochmal.

Gerd Bohlender Effizienz

Page 31: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Eier im Korb - Zweiter Algorithmus

Es kommen nur Zahlen in Frage, die bei Division durch 2, 3, 4, 5,6 den Rest 1 ergeben.Mit etwas Mathematik stellt man fest: Es kommen nur Zahlen inFrage, die bei Division durch kgV(2, 3, 4, 5, 6) = 60 den Rest 1ergeben.Also: Teste alle Zahlen n = 1, 61, 121...

Beginne mit n = 1

Prufe, ob n durch 7 ohne Rest teilbar ist.

Ist dies der Fall, dann brich ab und gib das Ergebnis aus.Andernfalls erhohe n um 60 und prufe nochmal.

Gerd Bohlender Effizienz

Page 32: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Eier im Korb - Zweiter Algorithmus

Es kommen nur Zahlen in Frage, die bei Division durch 2, 3, 4, 5,6 den Rest 1 ergeben.Mit etwas Mathematik stellt man fest: Es kommen nur Zahlen inFrage, die bei Division durch kgV(2, 3, 4, 5, 6) = 60 den Rest 1ergeben.Also: Teste alle Zahlen n = 1, 61, 121...

Beginne mit n = 1

Prufe, ob n durch 7 ohne Rest teilbar ist.

Ist dies der Fall, dann brich ab und gib das Ergebnis aus.Andernfalls erhohe n um 60 und prufe nochmal.

Gerd Bohlender Effizienz

Page 33: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Eier im Korb - Zweiter Algorithmus

Es kommen nur Zahlen in Frage, die bei Division durch 2, 3, 4, 5,6 den Rest 1 ergeben.Mit etwas Mathematik stellt man fest: Es kommen nur Zahlen inFrage, die bei Division durch kgV(2, 3, 4, 5, 6) = 60 den Rest 1ergeben.Also: Teste alle Zahlen n = 1, 61, 121...

Beginne mit n = 1

Prufe, ob n durch 7 ohne Rest teilbar ist.

Ist dies der Fall, dann brich ab und gib das Ergebnis aus.Andernfalls erhohe n um 60 und prufe nochmal.

Gerd Bohlender Effizienz

Page 34: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Eier im Korb - Zweiter Algorithmus

Es kommen nur Zahlen in Frage, die bei Division durch 2, 3, 4, 5,6 den Rest 1 ergeben.Mit etwas Mathematik stellt man fest: Es kommen nur Zahlen inFrage, die bei Division durch kgV(2, 3, 4, 5, 6) = 60 den Rest 1ergeben.Also: Teste alle Zahlen n = 1, 61, 121...

Beginne mit n = 1

Prufe, ob n durch 7 ohne Rest teilbar ist.

Ist dies der Fall, dann brich ab und gib das Ergebnis aus.Andernfalls erhohe n um 60 und prufe nochmal.

Gerd Bohlender Effizienz

Page 35: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Eier im Korb - Zweites Java-Programm

public class Eier2 {

public static void main (String [] args){int i=1;do i += 60;while (i%7 != 0);System.out.println("Es waren " + i +

" Eier im Korb.");}

}

Gerd Bohlender Effizienz

Page 36: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Vergleich der Effizienz

Programm 2 braucht nur 1/60 der Rechenzeit von Programm1

Beide Programm brauchen nur Bruchteile einer Sekunde

Rechenzeit spielt hier keine Rolle

Fazit: Die Arbeitszeit des Programmierers fur diemathematischen Uberlegungen ist

”verschwendet“

Ubrigens ... es waren 301 Eier im Korb!

Gerd Bohlender Effizienz

Page 37: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Vergleich der Effizienz

Programm 2 braucht nur 1/60 der Rechenzeit von Programm1

Beide Programm brauchen nur Bruchteile einer Sekunde

Rechenzeit spielt hier keine Rolle

Fazit: Die Arbeitszeit des Programmierers fur diemathematischen Uberlegungen ist

”verschwendet“

Ubrigens ... es waren 301 Eier im Korb!

Gerd Bohlender Effizienz

Page 38: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Vergleich der Effizienz

Programm 2 braucht nur 1/60 der Rechenzeit von Programm1

Beide Programm brauchen nur Bruchteile einer Sekunde

Rechenzeit spielt hier keine Rolle

Fazit: Die Arbeitszeit des Programmierers fur diemathematischen Uberlegungen ist

”verschwendet“

Ubrigens ... es waren 301 Eier im Korb!

Gerd Bohlender Effizienz

Page 39: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Vergleich der Effizienz

Programm 2 braucht nur 1/60 der Rechenzeit von Programm1

Beide Programm brauchen nur Bruchteile einer Sekunde

Rechenzeit spielt hier keine Rolle

Fazit: Die Arbeitszeit des Programmierers fur diemathematischen Uberlegungen ist

”verschwendet“

Ubrigens ... es waren 301 Eier im Korb!

Gerd Bohlender Effizienz

Page 40: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Vergleich der Effizienz

Programm 2 braucht nur 1/60 der Rechenzeit von Programm1

Beide Programm brauchen nur Bruchteile einer Sekunde

Rechenzeit spielt hier keine Rolle

Fazit: Die Arbeitszeit des Programmierers fur diemathematischen Uberlegungen ist

”verschwendet“

Ubrigens ... es waren 301 Eier im Korb!

Gerd Bohlender Effizienz

Page 41: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Das Problem

Finde eine Zahl mit Endziffer 5

Multipliziere sie mit 5

Ist das Produkt gleich der ursprunglichen Zahl, wenn man die5 am Ende streicht und dafur vorne anfugt?

Beispiel: 5 * abcd5 = 5abcd(mit 4 Ziffern a, b, c, d)

Verallgemeinerung: ersetze 5 durch Faktor 2 bis 9

Quelle: Jacques Arsac, Computerdenkspiele selbst programmiert,Problem 3

Gerd Bohlender Effizienz

Page 42: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Das Problem

Finde eine Zahl mit Endziffer 5

Multipliziere sie mit 5

Ist das Produkt gleich der ursprunglichen Zahl, wenn man die5 am Ende streicht und dafur vorne anfugt?

Beispiel: 5 * abcd5 = 5abcd(mit 4 Ziffern a, b, c, d)

Verallgemeinerung: ersetze 5 durch Faktor 2 bis 9

Quelle: Jacques Arsac, Computerdenkspiele selbst programmiert,Problem 3

Gerd Bohlender Effizienz

Page 43: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Das Problem

Finde eine Zahl mit Endziffer 5

Multipliziere sie mit 5

Ist das Produkt gleich der ursprunglichen Zahl, wenn man die5 am Ende streicht und dafur vorne anfugt?

Beispiel: 5 * abcd5 = 5abcd(mit 4 Ziffern a, b, c, d)

Verallgemeinerung: ersetze 5 durch Faktor 2 bis 9

Quelle: Jacques Arsac, Computerdenkspiele selbst programmiert,Problem 3

Gerd Bohlender Effizienz

Page 44: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Das Problem

Finde eine Zahl mit Endziffer 5

Multipliziere sie mit 5

Ist das Produkt gleich der ursprunglichen Zahl, wenn man die5 am Ende streicht und dafur vorne anfugt?

Beispiel: 5 * abcd5 = 5abcd(mit 4 Ziffern a, b, c, d)

Verallgemeinerung: ersetze 5 durch Faktor 2 bis 9

Quelle: Jacques Arsac, Computerdenkspiele selbst programmiert,Problem 3

Gerd Bohlender Effizienz

Page 45: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Das Problem

Finde eine Zahl mit Endziffer 5

Multipliziere sie mit 5

Ist das Produkt gleich der ursprunglichen Zahl, wenn man die5 am Ende streicht und dafur vorne anfugt?

Beispiel: 5 * abcd5 = 5abcd(mit 4 Ziffern a, b, c, d)

Verallgemeinerung: ersetze 5 durch Faktor 2 bis 9

Quelle: Jacques Arsac, Computerdenkspiele selbst programmiert,Problem 3

Gerd Bohlender Effizienz

Page 46: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Das Problem

Finde eine Zahl mit Endziffer 5

Multipliziere sie mit 5

Ist das Produkt gleich der ursprunglichen Zahl, wenn man die5 am Ende streicht und dafur vorne anfugt?

Beispiel: 5 * abcd5 = 5abcd(mit 4 Ziffern a, b, c, d)

Verallgemeinerung: ersetze 5 durch Faktor 2 bis 9

Quelle: Jacques Arsac, Computerdenkspiele selbst programmiert,Problem 3

Gerd Bohlender Effizienz

Page 47: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Erster Algorithmus

Teste alle Zahlen n = 1, 2, 3, ...

Beginne mit n = 1

Prufe, ob die Zahl n die Bedingung”Zyklische Ziffern“ erfullt

Ist dies der Fall, dann brich ab und gib das Ergebnis aus.Andernfalls erhohe n um 1 und prufe nochmal.

Gerd Bohlender Effizienz

Page 48: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Erster Algorithmus

Teste alle Zahlen n = 1, 2, 3, ...

Beginne mit n = 1

Prufe, ob die Zahl n die Bedingung”Zyklische Ziffern“ erfullt

Ist dies der Fall, dann brich ab und gib das Ergebnis aus.Andernfalls erhohe n um 1 und prufe nochmal.

Gerd Bohlender Effizienz

Page 49: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Erster Algorithmus

Teste alle Zahlen n = 1, 2, 3, ...

Beginne mit n = 1

Prufe, ob die Zahl n die Bedingung”Zyklische Ziffern“ erfullt

Ist dies der Fall, dann brich ab und gib das Ergebnis aus.Andernfalls erhohe n um 1 und prufe nochmal.

Gerd Bohlender Effizienz

Page 50: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Erster Algorithmus

Teste alle Zahlen n = 1, 2, 3, ...

Beginne mit n = 1

Prufe, ob die Zahl n die Bedingung”Zyklische Ziffern“ erfullt

Ist dies der Fall, dann brich ab und gib das Ergebnis aus.Andernfalls erhohe n um 1 und prufe nochmal.

Gerd Bohlender Effizienz

Page 51: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Erstes Java-Programm

public class ZykZiff1 {

public static void main (String [] args){int i=0;do i++;while (i*5 != i/10+50000); // bei 4 Ziffern abcdSystem.out.println("Zyklische Ziffern: " + i);

}

}

Gerd Bohlender Effizienz

Page 52: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Probleme mit diesem Programm

Unbekannt, ob 4 Stellen abcd notig sind oder mehr oderweniger

Ggf. mussen alle Stellenzahlen durchprobiert werden

Reicht der Zahlbereich von int (9 Stellen) aus?

Reicht long (19 Stellen)?

Rechenzeit???

Gerd Bohlender Effizienz

Page 53: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Probleme mit diesem Programm

Unbekannt, ob 4 Stellen abcd notig sind oder mehr oderweniger

Ggf. mussen alle Stellenzahlen durchprobiert werden

Reicht der Zahlbereich von int (9 Stellen) aus?

Reicht long (19 Stellen)?

Rechenzeit???

Gerd Bohlender Effizienz

Page 54: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Probleme mit diesem Programm

Unbekannt, ob 4 Stellen abcd notig sind oder mehr oderweniger

Ggf. mussen alle Stellenzahlen durchprobiert werden

Reicht der Zahlbereich von int (9 Stellen) aus?

Reicht long (19 Stellen)?

Rechenzeit???

Gerd Bohlender Effizienz

Page 55: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Probleme mit diesem Programm

Unbekannt, ob 4 Stellen abcd notig sind oder mehr oderweniger

Ggf. mussen alle Stellenzahlen durchprobiert werden

Reicht der Zahlbereich von int (9 Stellen) aus?

Reicht long (19 Stellen)?

Rechenzeit???

Gerd Bohlender Effizienz

Page 56: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Probleme mit diesem Programm

Unbekannt, ob 4 Stellen abcd notig sind oder mehr oderweniger

Ggf. mussen alle Stellenzahlen durchprobiert werden

Reicht der Zahlbereich von int (9 Stellen) aus?

Reicht long (19 Stellen)?

Rechenzeit???

Gerd Bohlender Effizienz

Page 57: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Mathematische Idee

Fuhre Ziffernvergleich bei 5 ∗ abcd5 = 5abcd durch,beginnend bei der niederwertigsten Ziffer.

5 ∗ abcd5 = 5abcd fuhrt wegen 5 ∗ 5 = 25 zu d = 5

Es entsteht ein Ubertrag von 2, der im nachsten Schritt zuberucksichtigen ist

5 ∗ abc55 = 5abc5 fuhrt wegen 5 ∗ 5 + 2 = 27 zu c = 7

Es entsteht ein Ubertrag von 2

5 ∗ ab755 = 5ab75 fuhrt wegen 5 ∗ 7 + 2 = 37 zu b = 7

Es entsteht ein Ubertrag von 3

usw. (egal wie viele Stellen abcd vorliegen)

Der Algorithmus ist zu Ende, wenn

die berechnete Ziffer = 5 ist, undder Ubertrag = 0 ist

Gerd Bohlender Effizienz

Page 58: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Mathematische Idee

Fuhre Ziffernvergleich bei 5 ∗ abcd5 = 5abcd durch,beginnend bei der niederwertigsten Ziffer.

5 ∗ abcd5 = 5abcd fuhrt wegen 5 ∗ 5 = 25 zu d = 5

Es entsteht ein Ubertrag von 2, der im nachsten Schritt zuberucksichtigen ist

5 ∗ abc55 = 5abc5 fuhrt wegen 5 ∗ 5 + 2 = 27 zu c = 7

Es entsteht ein Ubertrag von 2

5 ∗ ab755 = 5ab75 fuhrt wegen 5 ∗ 7 + 2 = 37 zu b = 7

Es entsteht ein Ubertrag von 3

usw. (egal wie viele Stellen abcd vorliegen)

Der Algorithmus ist zu Ende, wenn

die berechnete Ziffer = 5 ist, undder Ubertrag = 0 ist

Gerd Bohlender Effizienz

Page 59: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Mathematische Idee

Fuhre Ziffernvergleich bei 5 ∗ abcd5 = 5abcd durch,beginnend bei der niederwertigsten Ziffer.

5 ∗ abcd5 = 5abcd fuhrt wegen 5 ∗ 5 = 25 zu d = 5

Es entsteht ein Ubertrag von 2, der im nachsten Schritt zuberucksichtigen ist

5 ∗ abc55 = 5abc5 fuhrt wegen 5 ∗ 5 + 2 = 27 zu c = 7

Es entsteht ein Ubertrag von 2

5 ∗ ab755 = 5ab75 fuhrt wegen 5 ∗ 7 + 2 = 37 zu b = 7

Es entsteht ein Ubertrag von 3

usw. (egal wie viele Stellen abcd vorliegen)

Der Algorithmus ist zu Ende, wenn

die berechnete Ziffer = 5 ist, undder Ubertrag = 0 ist

Gerd Bohlender Effizienz

Page 60: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Mathematische Idee

Fuhre Ziffernvergleich bei 5 ∗ abcd5 = 5abcd durch,beginnend bei der niederwertigsten Ziffer.

5 ∗ abcd5 = 5abcd fuhrt wegen 5 ∗ 5 = 25 zu d = 5

Es entsteht ein Ubertrag von 2, der im nachsten Schritt zuberucksichtigen ist

5 ∗ abc55 = 5abc5 fuhrt wegen 5 ∗ 5 + 2 = 27 zu c = 7

Es entsteht ein Ubertrag von 2

5 ∗ ab755 = 5ab75 fuhrt wegen 5 ∗ 7 + 2 = 37 zu b = 7

Es entsteht ein Ubertrag von 3

usw. (egal wie viele Stellen abcd vorliegen)

Der Algorithmus ist zu Ende, wenn

die berechnete Ziffer = 5 ist, undder Ubertrag = 0 ist

Gerd Bohlender Effizienz

Page 61: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Mathematische Idee

Fuhre Ziffernvergleich bei 5 ∗ abcd5 = 5abcd durch,beginnend bei der niederwertigsten Ziffer.

5 ∗ abcd5 = 5abcd fuhrt wegen 5 ∗ 5 = 25 zu d = 5

Es entsteht ein Ubertrag von 2, der im nachsten Schritt zuberucksichtigen ist

5 ∗ abc55 = 5abc5 fuhrt wegen 5 ∗ 5 + 2 = 27 zu c = 7

Es entsteht ein Ubertrag von 2

5 ∗ ab755 = 5ab75 fuhrt wegen 5 ∗ 7 + 2 = 37 zu b = 7

Es entsteht ein Ubertrag von 3

usw. (egal wie viele Stellen abcd vorliegen)

Der Algorithmus ist zu Ende, wenn

die berechnete Ziffer = 5 ist, undder Ubertrag = 0 ist

Gerd Bohlender Effizienz

Page 62: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Mathematische Idee

Fuhre Ziffernvergleich bei 5 ∗ abcd5 = 5abcd durch,beginnend bei der niederwertigsten Ziffer.

5 ∗ abcd5 = 5abcd fuhrt wegen 5 ∗ 5 = 25 zu d = 5

Es entsteht ein Ubertrag von 2, der im nachsten Schritt zuberucksichtigen ist

5 ∗ abc55 = 5abc5 fuhrt wegen 5 ∗ 5 + 2 = 27 zu c = 7

Es entsteht ein Ubertrag von 2

5 ∗ ab755 = 5ab75 fuhrt wegen 5 ∗ 7 + 2 = 37 zu b = 7

Es entsteht ein Ubertrag von 3

usw. (egal wie viele Stellen abcd vorliegen)

Der Algorithmus ist zu Ende, wenn

die berechnete Ziffer = 5 ist, undder Ubertrag = 0 ist

Gerd Bohlender Effizienz

Page 63: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Mathematische Idee

Fuhre Ziffernvergleich bei 5 ∗ abcd5 = 5abcd durch,beginnend bei der niederwertigsten Ziffer.

5 ∗ abcd5 = 5abcd fuhrt wegen 5 ∗ 5 = 25 zu d = 5

Es entsteht ein Ubertrag von 2, der im nachsten Schritt zuberucksichtigen ist

5 ∗ abc55 = 5abc5 fuhrt wegen 5 ∗ 5 + 2 = 27 zu c = 7

Es entsteht ein Ubertrag von 2

5 ∗ ab755 = 5ab75 fuhrt wegen 5 ∗ 7 + 2 = 37 zu b = 7

Es entsteht ein Ubertrag von 3

usw. (egal wie viele Stellen abcd vorliegen)

Der Algorithmus ist zu Ende, wenn

die berechnete Ziffer = 5 ist, undder Ubertrag = 0 ist

Gerd Bohlender Effizienz

Page 64: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Mathematische Idee

Fuhre Ziffernvergleich bei 5 ∗ abcd5 = 5abcd durch,beginnend bei der niederwertigsten Ziffer.

5 ∗ abcd5 = 5abcd fuhrt wegen 5 ∗ 5 = 25 zu d = 5

Es entsteht ein Ubertrag von 2, der im nachsten Schritt zuberucksichtigen ist

5 ∗ abc55 = 5abc5 fuhrt wegen 5 ∗ 5 + 2 = 27 zu c = 7

Es entsteht ein Ubertrag von 2

5 ∗ ab755 = 5ab75 fuhrt wegen 5 ∗ 7 + 2 = 37 zu b = 7

Es entsteht ein Ubertrag von 3

usw. (egal wie viele Stellen abcd vorliegen)

Der Algorithmus ist zu Ende, wenn

die berechnete Ziffer = 5 ist, undder Ubertrag = 0 ist

Gerd Bohlender Effizienz

Page 65: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Mathematische Idee

Fuhre Ziffernvergleich bei 5 ∗ abcd5 = 5abcd durch,beginnend bei der niederwertigsten Ziffer.

5 ∗ abcd5 = 5abcd fuhrt wegen 5 ∗ 5 = 25 zu d = 5

Es entsteht ein Ubertrag von 2, der im nachsten Schritt zuberucksichtigen ist

5 ∗ abc55 = 5abc5 fuhrt wegen 5 ∗ 5 + 2 = 27 zu c = 7

Es entsteht ein Ubertrag von 2

5 ∗ ab755 = 5ab75 fuhrt wegen 5 ∗ 7 + 2 = 37 zu b = 7

Es entsteht ein Ubertrag von 3

usw. (egal wie viele Stellen abcd vorliegen)

Der Algorithmus ist zu Ende, wenn

die berechnete Ziffer = 5 ist, undder Ubertrag = 0 ist

Gerd Bohlender Effizienz

Page 66: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Zweiter Algorithmus

Verallgemeinerung: ersetze 5 durch beliebigen Faktor 2 bis 9

Starte mit Ziffer = Faktor und Ubertrag = 0

Berechne das 2-stellige Produkt = Ziffer * Faktor + Ubertrag

Zerlege Produkt in die niederwertige Zifferund den hoherwertigen Ubertrag

Wiederhole solange

die berechnete Ziffer nicht 5 ist, oderder Ubertrag nicht 0 ist

Gerd Bohlender Effizienz

Page 67: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Zweiter Algorithmus

Verallgemeinerung: ersetze 5 durch beliebigen Faktor 2 bis 9

Starte mit Ziffer = Faktor und Ubertrag = 0

Berechne das 2-stellige Produkt = Ziffer * Faktor + Ubertrag

Zerlege Produkt in die niederwertige Zifferund den hoherwertigen Ubertrag

Wiederhole solange

die berechnete Ziffer nicht 5 ist, oderder Ubertrag nicht 0 ist

Gerd Bohlender Effizienz

Page 68: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Zweiter Algorithmus

Verallgemeinerung: ersetze 5 durch beliebigen Faktor 2 bis 9

Starte mit Ziffer = Faktor und Ubertrag = 0

Berechne das 2-stellige Produkt = Ziffer * Faktor + Ubertrag

Zerlege Produkt in die niederwertige Zifferund den hoherwertigen Ubertrag

Wiederhole solange

die berechnete Ziffer nicht 5 ist, oderder Ubertrag nicht 0 ist

Gerd Bohlender Effizienz

Page 69: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Zweiter Algorithmus

Verallgemeinerung: ersetze 5 durch beliebigen Faktor 2 bis 9

Starte mit Ziffer = Faktor und Ubertrag = 0

Berechne das 2-stellige Produkt = Ziffer * Faktor + Ubertrag

Zerlege Produkt in die niederwertige Zifferund den hoherwertigen Ubertrag

Wiederhole solange

die berechnete Ziffer nicht 5 ist, oderder Ubertrag nicht 0 ist

Gerd Bohlender Effizienz

Page 70: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Zweiter Algorithmus

Verallgemeinerung: ersetze 5 durch beliebigen Faktor 2 bis 9

Starte mit Ziffer = Faktor und Ubertrag = 0

Berechne das 2-stellige Produkt = Ziffer * Faktor + Ubertrag

Zerlege Produkt in die niederwertige Zifferund den hoherwertigen Ubertrag

Wiederhole solange

die berechnete Ziffer nicht 5 ist, oderder Ubertrag nicht 0 ist

Gerd Bohlender Effizienz

Page 71: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Zweites Programm

import java.util.*;

public class Zykziff5 {

public static void main (String [] args) {

Locale.setDefault (Locale.US);

Scanner sc = new Scanner (System.in);

int Faktor, Ziffer, Uebertrag=0, Produkt, Stellen=0;

System.out.print ("Mit welchem Faktor soll multipliziert werden ? ");

Faktor = sc.nextInt (); // Faktor einlesen

Ziffer = Faktor; // niederwertigste Ziffer = Faktor

System.out.println("Das Ergebnis lautet (rueckwaerts gelesen !):");

do

{

System.out.print (Ziffer); // aktuelle Ziffer ausdrucken

Stellen ++; // Stellenzahl bei jeder Ausgabe erhoehen

Produkt = Ziffer * Faktor + Uebertrag; // neues Produkt, zweistellig

Ziffer = Produkt % 10; // neue Ziffer = niederste Stelle des Produkts

Uebertrag = Produkt / 10; // neuer Uebertrag = hoechste Stelle des Produkts

} // wiederholen, wenn eine der beiden ...

while (Ziffer != Faktor || Uebertrag != 0); // ... Abbruch-Bedingungen verletzt ist

System.out.println ();

System.out.println ("Es hat " + Stellen + " Stellen");

}

}

Gerd Bohlender Effizienz

Page 72: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Ergebnisse

c:\b\java>java Zykziff5Mit welchem Faktor soll multipliziert werden ? 5Das Ergebnis lautet (rueckwaerts gelesen !):557783964376381959798442216035623618040201Es hat 42 Stellen

Gerd Bohlender Effizienz

Page 73: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Ergebnisse

Mit welchem Faktor soll multipliziert werden ? 2

248637498751362501

Es hat 18 Stellen

Mit welchem Faktor soll multipliziert werden ? 3

3973142715569860268572844301

Es hat 28 Stellen

Mit welchem Faktor soll multipliziert werden ? 4

465201

Es hat 6 Stellen

Mit welchem Faktor soll multipliziert werden ? 6

6697760446811726754748050389833022395531882732452519496101

Es hat 58 Stellen

Mit welchem Faktor soll multipliziert werden ? 7

7975048813263572944101

Es hat 22 Stellen

Mit welchem Faktor soll multipliziert werden ? 8

8487228562101

Es hat 13 Stellen

Mit welchem Faktor soll multipliziert werden ? 9

91742202834944046788980825779716505595321101

Es hat 44 Stellen

Gerd Bohlender Effizienz

Page 74: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Laufzeit des zweiten Algorithmus

42 Schleifendurchlaufe

etwa 10 Operationen pro Schleife

theoretisch etwa 10−7 Sekunden auf einem handelsublichenPC

mit Java-Overhead (Interpretation, Startup)deutlich unter 1 Sekunde

Gerd Bohlender Effizienz

Page 75: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Laufzeit des zweiten Algorithmus

42 Schleifendurchlaufe

etwa 10 Operationen pro Schleife

theoretisch etwa 10−7 Sekunden auf einem handelsublichenPC

mit Java-Overhead (Interpretation, Startup)deutlich unter 1 Sekunde

Gerd Bohlender Effizienz

Page 76: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Laufzeit des zweiten Algorithmus

42 Schleifendurchlaufe

etwa 10 Operationen pro Schleife

theoretisch etwa 10−7 Sekunden auf einem handelsublichenPC

mit Java-Overhead (Interpretation, Startup)deutlich unter 1 Sekunde

Gerd Bohlender Effizienz

Page 77: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Laufzeit des zweiten Algorithmus

42 Schleifendurchlaufe

etwa 10 Operationen pro Schleife

theoretisch etwa 10−7 Sekunden auf einem handelsublichenPC

mit Java-Overhead (Interpretation, Startup)deutlich unter 1 Sekunde

Gerd Bohlender Effizienz

Page 78: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Laufzeit des ersten Algorithmus

Er benotigt 1042 Schleifendurchlaufe= etwa 1043 Operationen

Schnellster Rechner zzt. (2007, Quelle: www.top500.org):knapp 1015 Flops

Dieser braucht etwa 1028 Sekunden zur Losung

1028 Sekunden = etwa 1020 Jahre(1 Jahr = 365 ∗ 86400 Sekunden = etwa 3 ∗ 107 Sekunden)

... aber das Universum existiert erstetwa 1010 Jahre seit dem Urknall!

Gerd Bohlender Effizienz

Page 79: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Laufzeit des ersten Algorithmus

Er benotigt 1042 Schleifendurchlaufe= etwa 1043 Operationen

Schnellster Rechner zzt. (2007, Quelle: www.top500.org):knapp 1015 Flops

Dieser braucht etwa 1028 Sekunden zur Losung

1028 Sekunden = etwa 1020 Jahre(1 Jahr = 365 ∗ 86400 Sekunden = etwa 3 ∗ 107 Sekunden)

... aber das Universum existiert erstetwa 1010 Jahre seit dem Urknall!

Gerd Bohlender Effizienz

Page 80: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Laufzeit des ersten Algorithmus

Er benotigt 1042 Schleifendurchlaufe= etwa 1043 Operationen

Schnellster Rechner zzt. (2007, Quelle: www.top500.org):knapp 1015 Flops

Dieser braucht etwa 1028 Sekunden zur Losung

1028 Sekunden = etwa 1020 Jahre(1 Jahr = 365 ∗ 86400 Sekunden = etwa 3 ∗ 107 Sekunden)

... aber das Universum existiert erstetwa 1010 Jahre seit dem Urknall!

Gerd Bohlender Effizienz

Page 81: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Laufzeit des ersten Algorithmus

Er benotigt 1042 Schleifendurchlaufe= etwa 1043 Operationen

Schnellster Rechner zzt. (2007, Quelle: www.top500.org):knapp 1015 Flops

Dieser braucht etwa 1028 Sekunden zur Losung

1028 Sekunden = etwa 1020 Jahre(1 Jahr = 365 ∗ 86400 Sekunden = etwa 3 ∗ 107 Sekunden)

... aber das Universum existiert erstetwa 1010 Jahre seit dem Urknall!

Gerd Bohlender Effizienz

Page 82: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Laufzeit des ersten Algorithmus

Er benotigt 1042 Schleifendurchlaufe= etwa 1043 Operationen

Schnellster Rechner zzt. (2007, Quelle: www.top500.org):knapp 1015 Flops

Dieser braucht etwa 1028 Sekunden zur Losung

1028 Sekunden = etwa 1020 Jahre(1 Jahr = 365 ∗ 86400 Sekunden = etwa 3 ∗ 107 Sekunden)

... aber das Universum existiert erstetwa 1010 Jahre seit dem Urknall!

Gerd Bohlender Effizienz

Page 83: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Laufzeitvergleich der beiden Algorithmen

Der erste Algorithmus braucht 1020 Jahre auf dem schnellstenRechner der Erde

Der zweite Algorithmus braucht einen Bruchteil einer Sekundeauf einem handelsublichen PC

Fazit: Nachdenken uber mathematische Hintergrunde hat sichgelohnt

Gerd Bohlender Effizienz

Page 84: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Laufzeitvergleich der beiden Algorithmen

Der erste Algorithmus braucht 1020 Jahre auf dem schnellstenRechner der Erde

Der zweite Algorithmus braucht einen Bruchteil einer Sekundeauf einem handelsublichen PC

Fazit: Nachdenken uber mathematische Hintergrunde hat sichgelohnt

Gerd Bohlender Effizienz

Page 85: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Laufzeitvergleich der beiden Algorithmen

Der erste Algorithmus braucht 1020 Jahre auf dem schnellstenRechner der Erde

Der zweite Algorithmus braucht einen Bruchteil einer Sekundeauf einem handelsublichen PC

Fazit: Nachdenken uber mathematische Hintergrunde hat sichgelohnt

Gerd Bohlender Effizienz

Page 86: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Wann sind Computer schnell genug furden ersten Algorithmus?

Der erste Algorithmus braucht 1020 Jahre auf dem heuteschnellsten Rechner der Erde

Supercomputer wurden im letzten Jahrzehnt fast um denFaktor 1000 schneller (Quelle: www.top500.org)

In 70 Jahren ware das (theoretisch!!!) ein Faktor 1021

Im Jahre 2080 brauchte der schnellste Computer der Erdenoch 1 Monat(sehr theoretisch!!!)

Gerd Bohlender Effizienz

Page 87: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Wann sind Computer schnell genug furden ersten Algorithmus?

Der erste Algorithmus braucht 1020 Jahre auf dem heuteschnellsten Rechner der Erde

Supercomputer wurden im letzten Jahrzehnt fast um denFaktor 1000 schneller (Quelle: www.top500.org)

In 70 Jahren ware das (theoretisch!!!) ein Faktor 1021

Im Jahre 2080 brauchte der schnellste Computer der Erdenoch 1 Monat(sehr theoretisch!!!)

Gerd Bohlender Effizienz

Page 88: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Wann sind Computer schnell genug furden ersten Algorithmus?

Der erste Algorithmus braucht 1020 Jahre auf dem heuteschnellsten Rechner der Erde

Supercomputer wurden im letzten Jahrzehnt fast um denFaktor 1000 schneller (Quelle: www.top500.org)

In 70 Jahren ware das (theoretisch!!!) ein Faktor 1021

Im Jahre 2080 brauchte der schnellste Computer der Erdenoch 1 Monat(sehr theoretisch!!!)

Gerd Bohlender Effizienz

Page 89: Effizienz - KIT - Fakultät für Mathematik · Uberlegungen zur Effizienz¨ Ben¨otigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren:

Zyklische Ziffern - Wann sind Computer schnell genug furden ersten Algorithmus?

Der erste Algorithmus braucht 1020 Jahre auf dem heuteschnellsten Rechner der Erde

Supercomputer wurden im letzten Jahrzehnt fast um denFaktor 1000 schneller (Quelle: www.top500.org)

In 70 Jahren ware das (theoretisch!!!) ein Faktor 1021

Im Jahre 2080 brauchte der schnellste Computer der Erdenoch 1 Monat(sehr theoretisch!!!)

Gerd Bohlender Effizienz