it-swarm.dev

Vorausgesetzte mathematische Fähigkeiten für das Buch Einführung in Algorithmen (CLRS)

Ich habe bereits Kenntnisse über grundlegende Algorithmen. Jetzt habe ich vor, weiter fortgeschrittene Algorithmen zu studieren, und ich entscheide mich für Einführung in Algorithmen .

Ich bin mir nicht sicher, muss ich meine mathematischen Fähigkeiten auffrischen, bevor ich dieses Buch lese, oder nicht? (Ich vergesse fast Mathe, die ich in der High School und im College lerne.) Wenn dieses Buch starke mathematische Kenntnisse benötigt, schlagen Sie bitte Fächer vor, die davon profitieren.

Ich möchte etwas über die Implementierung, das Design und die Analyse von Algorithmen lernen.

30
Anonymous

Der Kurs MIT, der das CLR-Buch verwendet, hat einen bestimmten vorausgesetzten Kurs. Das von diesem vorausgesetzten Kurs verwendete Lehrbuch ist kostenlos verfügbar.

Hier ist es:

http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/readings/

Der vorausgesetzte Kurs des vorausgesetzten Kurses ist eine Einzelvariablenrechnung.

23
user16764

Wie @ user16764 in Bezug auf das insbesondere MIT Kursangebot (6.042) , eine Version dessen anspielt, was normalerweise genannt wird ) Diskrete Mathematik , kombiniert mit der Berechnung auf der Ebene des ersten Studienjahres (Universität), sind die Hauptvoraussetzungen für das Verständnis vieler (grundlegender) Algorithmen und ihrer Analyse.

Spezialisierte oder fortgeschrittene Algorithmen können zusätzlichen oder fortgeschrittenen mathematischen Hintergrund erfordern, wie z. B. Statistik/Wahrscheinlichkeit (wissenschaftliche und finanzielle Programmierung), abstrakte Algebra und Zahlentheorie (d. H. Für die Kryptographie).

Als Student hatte mein Kurs für diskrete Mathematik das Lehrbuch Diskrete Mathematik mit Anwendungen von Susanna Epp und einem anderen Das Lehrbuch, das ich in meiner Bibliothek gefunden habe, war Diskrete Mathematik von Kenneth Ross und Charles Wright. Eine anständige, qualitativ hochwertige Kopie davon ist wahrscheinlich ein vernünftiger Ausgangspunkt (mit oder ohne Kombination mit dem MIT Open Course Ware, abhängig von Ihrem Lernstil). Zum Selbststudium habe ich oft Wenn Sie zwei Quellen finden, auf die Sie sich beziehen können, können Sie Punkte klären, die ich nicht verstehen kann.

Eine Alternative, die ich vorgeschlagen habe, ist Concrete Mathematics, zweite Ausgabe von Ronald L. Graham, Donald E. Knuth und Oren Patashnik. Ich kann mein Exemplar im Moment nicht finden und habe es nicht sorgfältig durchgearbeitet, sodass ich keine Empfehlung dafür oder dagegen aussprechen kann.

Aus dem Vorwort:

Aber was genau ist konkrete Mathematik? Es ist eine Mischung aus kontinuierlicher und diskreter Mathematik. Genauer gesagt handelt es sich um die kontrollierte Manipulation mathematischer Formeln unter Verwendung einer Sammlung von Techniken zur Lösung von Problemen.

Ich werde die Curmudgeon-Kommentare von Bill the Lizard in diesem Blogeintrag " Bücher, die Programmierer nicht wirklich lesen " notieren. Persönlich finde ich immer noch Robert Sedgewicks Algorithmen (jetzt 4. Aufl.) Weniger einschüchternd und zugänglicher.

In Bezug auf den stetigen (dh reellen Zahlen) Teil der Mathematik Kalkül durch Stewart scheint ein häufig verwendetes Buch zu sein, um Studenten Vorlesungen über die Aufklärung zu halten, die aus Differenzierung und Integration resultiert.

9
mctylr

Es ist nicht wirklich so viel Mathematik an sich, wie es Komfort und Geläufigkeit mit dem mathematischen Formalismus ist. Lernen Sie die grundlegende Terminologie und den entsprechenden Formalismus.

Die Analyse von Algorithmen, insbesondere im Kontext der Komplexitätstheorie, in der Sie das zugrunde liegende Rechenproblem untersuchen (wenn Sie versuchen, etwas Wesentlicheres als die "Big-Oh" -Notation zu tun), erfordert einen erheblichen Zeitaufwand in die Graphentheorie und abstrakte Algebra, alles zusätzlich zu einer riesigen Dosis angeborener Klugheit.

6
Bill VB

Ich glaube, Sie können loslegen, es sei denn, Sie sind besorgt über die "Analyse" von Algorithmen, nicht nur über deren Implementierung. Dieser Kurs ist normalerweise ein UD-Mathematik- oder CS-Kurs in den meisten Lehrplänen.

Nur zu verstehen, wie die Algorithmen in diesem Buch implementiert werden, sollte kein Problem sein

1
Doug Stanley