Am 2017-08-02 11:19, schrieb tomas@tuxteam.de:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Tue, Aug 01, 2017 at 10:00:24PM +0200, Urs Liska wrote:
[...]
Tja, jetzt habe ich dieses Assignment auch vervollständigt - ohne aber so wirklich verstanden zu haben, was ich mache :-(
Das liegt möglicherweise daran, dass an diesem Rabin-Karp mehrere Akteure beteiligt sind (das ist auch bei den Graphen so, die anderen treten aber mehr in den Hintergrund und sind sozusagen Teil des Chors :)
Ich nenne mal welche, ohne Anspruch auf Vollständigkeit zu erheben. Wenn Du bei einem Punkt sagst "kann ich", dann kansst Du den streichen, sonst... reingucken (wenn Du Hilfe dabei brauchst, melde Dich. Die Liste ist sicher auch hilfreich darin)
- (Abstrakte) Daten und ihre Darstellungen Buchstaben, Strings, Zahlen; Binäre darstellung. Maschinenwort.
Mit "Maschinenwort" meinst du das Problem, dass es haklig wird, wenn ein Datentyp (v.a Integer) die Größe eines (systemabhängigen) Maschinenworts überschreitet? Sprachen wie C produzieren dann einen stummen Überlauf (falsche Zahlen ohne Fehlermeldung), Python regelt das für dich, wird aber dramatisch langsamer. Wenn es das ist: "kann ich", der Rest ist mir auch klar.
- Arithmetik (abstrakt und in Maschinendarstellung).
Arithmetik in Maschinendarstellung? Weiß ich jetzt nicht genau, was du meinst. Manche Sachen sind mir klar wie z.B. Diverses was mit Bit-Shifting zu tun hat, vieles Andere nicht. Keine Ahnung, wie die Maschine Multiplikationen regelt (und keine Ahnung, ab wann ich dieses Wissen brauche).
Grundrechenarten und Modulo. Primzahlen
Bei Modulo und Primzahlen sind mir Grundlagen durchaus bekannt, höhere Dinge aber überhaupt nicht. Dieser Artikel über das Fermatsche Theorem (bestimmte Eigenschaften von Zahlen hoch eine Primzahl) fallen mir sehr schwer. Auch weitergehende Modulo-Regeln (was passiert, wenn ich in welcher Reihenfolge Modulo-Operationen durchführe, und v.a., wie kann ich davon profitieren?) - ziemlich blank ...
- Hashing
Das Konzept von Hash-Funktionen und Hash-Chains ist mir im Kurs klar geworden. Die Mathematik von guten Hash-Funktionen dagegen nicht. Und auch wenn ich verstanden habe wie diese polynomische String-Hash-Funktion funktioniert, ist mir überhaupt nicht klar, wie die Dozenten auf die Idee gekommen sind, sie in die entsprechende Python-Funktion zu übertragen. Gleiches gilt für die Idee der vorberechneten Hashes. Ich kann leicht nachvollziehen, dass man einmal einen ganzen String (zeichenweise) hasht und dann für jede weitere Stelle praktisch nur eine Funktion berechnen muss. Nachzuvollziehen, wie das mit den Summenfunktionen tatsächlich funktioniert, ist schon schwieriger. Und das in eine funktionierende Python-Routine zu übertragen, hätte ich nicht alleine gewusst.
Die wirken alle ein wenig gleichberechtigt hier zusammen, es lohnt sich aber, sie jeweils als eigenständige Persönlichkeiten kennenzulernen.
Offensichtlich fällt es mir recht leicht, so Dinge wie etwa das Durchqueren von Graphen zu verstehen, aber die konkret mathematischen Sachen bilden doch noch eine natürliche Grenze. Ich hab zwar mal freiwillig Mathe-LK gemacht und auch ziemlich gut durchgezogen - aber das ist doch auch schon 25 Jahre her ...
Ich habe da oben mal eine (diffuse) Theorie aufgestellt. Ich denke, das Grundwerkzeug hast Du, die nötige Vertrautheit, gleichzeitig drei davon auf der Werkbank liegen zu haben ohne den Überblick zu verlieren braucht etwas Übung.
Diese Theorie kenne ich auch, ich nehme immer das Bild eines Gleichungssystems, das zu viele Unbekannte hat und in dem man erst dann eine Lösung findet, wenn alle gleichzeitig (zufällig) den richtigen Wert haben. Aber das trifft hier glaube ich nur bedingt zu. Ich habe sicher das Grundwerkzeug, Algorithmen zu verstehen und bin mit einigen der relevanten Parameter vertraut (z.B. inzwischen den Implikationen der verwendeten Datenstruktur). Bei den komplexeren mathematischen Bestandteilen fehlt mir aber teilweise tatsächlich ein Grundverständnis (entweder vergessen oder teilweise noch nie wirklich damit beschäftigt).
Ich bin mal gespannt, wie sich das im nächsten Kurs (String-Algorithmen) und im optionalen letzten Modul des Graphen-Kurses (erweiterte Aufgaben und anscheinend 1000x so schnelle Navigations-Algorithmen mit echten Kartendaten) entwickelt.
HG und herzlichen Dank Urs
lg
- -- t
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux)
iEYEARECAAYFAlmBmR4ACgkQBcgs9XrR2kZ2JwCdHKNqK8mXlhEq0KfdgpJrXFAW cDgAnjOau58gPpRXVUAb1BkUwvBOM+OS =UnJE -----END PGP SIGNATURE----- _______________________________________________ Freiburger Linux User Group Mail an die Liste: flug@lug-freiburg.de Mailingliste verwalten (u.a. abbestellen): https://lug-freiburg.de/mailman/listinfo/flug