TL; DR Ein kleines Buch über Mathematik für Programmierer. Elektronische und Papierversion als Referenz .Ich unterrichte seit 9 Jahren an Universitäten. In dieser Zeit haben sich die Schüler verändert. Mein subjektiver Eindruck ist, dass ein moderner Neuling seine Zeit viel mehr schätzt. Unter den Bedingungen der freien Teilnahme müssen selbst hervorragende Studenten sicher sein, dass ihnen eine bestimmte Vorlesung zugute kommt, vergleichbar mit 1,5 Stunden bei Kaggle oder Coursera. Es scheint, dass die Verfügbarkeit von Erklärungen mit garantierter Qualität
das klassische Vorlesungsformat bereits zunichte macht . Daher findet die zweite Vorlesung des Kurses für viele Dozenten in der Regel vor einem deutlich kleineren Publikum statt. In einem kleineren Publikum haben die Schüler ein größeres Manöver für Fragen, und die häufigste Frage, die ich paarweise zu Algorithmen und Diskretisierung hörte, ist „Warum?“.
Warum kombinatorische Formeln? Was ist der Haken all dieser bedingten Wahrscheinlichkeiten, die normalerweise auf Körben und Bällen erklärt werden? Warum Matrizen multiplizieren? Und warum werden inverse Matrizen benötigt? Na gut, hier ist eine Breitensuche, und cho?Um nicht zu sagen, dass ich während meiner eigenen IT-Studenten klare Antworten auf all diese Fragen erhalten habe. Aber die Erfahrung in Unternehmen völlig unterschiedlicher Art brachte mich teilweise dem Verständnis näher. In meinen Paaren versuche ich, Beispiele zu nennen, die sich nicht mit Katzen befassen, nicht offensichtliche Analogien zu entwickeln und die Branche im Allgemeinen irgendwie näher an die Mathematik heranzuführen. Darüber hinaus ist es unwahrscheinlich, dass das Gesamtpublikum aller meiner Klassen im Laufe der Jahre 1000 Personen überschritten hat. Also habe ich mir ein paar Erklärungen ausgedacht und ein Buch mit Beispielen für Programmierer geschrieben.
Unten werde ich ein kleines Fragment geben. Sie können das Buch in Papierform oder in elektronischer Form in Besitz nehmen, indem
Sie auf den Link klicken . Feedback ist willkommen! Verfolgt.
Moskauer Eisbahnen
Moskau Draußen ist Winter, nicht sehr kalt, sonnig. Sonntagmorgen. Sie haben den Test oder sogar eine Prüfung in linearer Algebra bestanden und haben Ihre eigenen Schlittschuhe. Was braucht man sonst noch zum Glück?
Willst du zur Eisbahn gehen!
Bei einer Tasse Tee haben Sie einen Plan ausgearbeitet. Sie interessieren sich für Eisbahnen in der Nähe des Hauses, aber das reicht nicht, Sie brauchen noch Annehmlichkeiten. Lassen Sie diese Eisbahnen lieber kostenlos mit WLAN und einer Toilette.
Sie haben viele nahe gelegene Eisbahnen
A und bequeme genannt -
B. Und da wir sowohl an Nähe als auch an Bequemlichkeit interessiert sind, ist es unser Ziel, diese Mengen
A ∩
B zu schneiden
. Woher bekommen wir diese Sets?
Es ist nicht Ihre Methode, durch die Eisbahn zu gehen oder Poster-Bewertungen zu lesen. Sie gehen daher zum
offenen Datenportal in
Moskau , oder besser gesagt, ein Python-Skript erledigt dies für Sie. Ein Beispiel dafür finden Sie auf der Website des Buches im Dokument
M02 - Vektoren (Skaten) . Sie finden, dass es in Moskau viele Eisbahnen gibt - 1350. Wie werden wir suchen? Hier erinnern Sie sich an ein Lehrbuch über lineare Algebra und verstehen, dass Sie die Walzen den zwei Räumen von Attributen zuordnen müssen, die Sie benötigen: zweidimensionale Koordinaten
(Breite, Länge) und dreidimensionale Annehmlichkeiten
(Wi-Fi, Toilette, kostenlos) .
Im zweiten Bereich ist das Vorhandensein des Attributs Eins und das Fehlen Null, was bedeutet, dass eine Normalisierung dieser Daten nicht mehr erforderlich ist. Wir werden die Koordinaten auch nicht normalisieren, da sie in unseren Breiten vergleichbar sind (andernfalls müssten wir einen Referenzpunkt auswählen und Grad in Meter umrechnen). Und dann wählen Sie nur die interessantesten Optionen - warum brauchen Sie eine Eisbahn, die sich auf der anderen Seite der Stadt befindet oder in der es offensichtlich keine Annehmlichkeiten gibt? Für jeden Raum nehmen wir nur die Daten mit dem kleinsten euklidischen Abstand zum Ziel.
def topN(expected, data, N): norms = list(map( lambda row, number: (np.linalg.norm(row - expected), number), data, range(len(data))))
Alles ist fertig. Es bleibt nur noch irgendwo unsere eigenen Koordinaten zu gucken (jetzt kann es in jeder Anwendung mit Karten gemacht werden) und alle geeigneten Eisbahnen auf zu finden
der Schnittpunkt der Mengen
A und
B :
me_geo = np.array([37.676289, 55.772266])
Für die Daten aus dem Beispiel erhalten wir unter den 30 nächstgelegenen Eisbahnen eine Eisbahn auf Staraya Basmannaya, jedoch mit allen Annehmlichkeiten. Und du kannst sogar laufen.

Verwenden Sie das offene Datenportal in Moskau, um unabhängig das nächstgelegene offene WLAN, ein Sommerkino oder Videoüberwachungskameras im Freien zu finden.