TL; DR Sebuah buku kecil tentang matematika untuk programmer. Versi elektronik dan kertas dengan referensi .Saya telah mengajar di universitas selama 9 tahun. Selama waktu ini, siswa telah berubah. Kesan subjektif saya adalah bahwa mahasiswa baru modern lebih menghargai waktunya. Dalam kondisi kehadiran gratis, bahkan siswa berprestasi harus yakin bahwa kuliah tertentu akan menguntungkan mereka, sebanding dengan 1,5 jam di Kaggle atau Coursera. Tampaknya ketersediaan penjelasan kualitas terjamin sudah
mematikan format kuliah klasik . Oleh karena itu, kuliah kedua tentu saja bagi banyak dosen biasanya berlangsung di depan audiensi yang lebih kecil. Dalam audiens yang lebih kecil, siswa memiliki manuver yang lebih besar untuk pertanyaan, dan pertanyaan paling umum yang saya dengar secara berpasangan tentang algoritma dan diskritisasi adalah "Mengapa?".
Mengapa formula kombinatorik? Apa tangkapan dari semua probabilitas bersyarat ini, yang biasanya dijelaskan pada keranjang dan bola? Mengapa melipatgandakan matriks? Dan mengapa matriks terbalik diperlukan? Baiklah ok, ini pencarian pertama kali, dan pilih?Bukan untuk mengatakan bahwa selama siswa IT saya sendiri, saya menerima jawaban yang jelas untuk semua pertanyaan ini. Tetapi pengalaman di perusahaan-perusahaan dari tipe yang sepenuhnya berbeda sebagian membawa saya lebih dekat ke pemahaman. Dalam pasangan saya, saya mencoba memberikan contoh bukan pada kucing, untuk membangun analogi yang tidak jelas dan umumnya membawa industri lebih dekat ke matematika. Selain itu, jumlah hadirin semua kelas saya selama bertahun-tahun tidak mungkin melebihi 1000 orang. Jadi saya datang dengan banyak penjelasan dan menulis buku dengan contoh untuk programmer.
Di bawah ini saya akan memberikan fragmen kecil. Anda dapat memiliki buku dalam bentuk kertas atau elektronik dengan
mengklik tautan . Umpan balik dipersilahkan! Dikejar.
Gelanggang es Moskow
Moskow Di luar adalah musim dingin, tidak terlalu dingin, cerah. Minggu pagi. Anda telah lulus ujian atau bahkan ujian dalam aljabar linier, dan Anda memiliki sepatu roda sendiri. Apa lagi yang dibutuhkan untuk kebahagiaan?
Apakah Anda ingin pergi ke arena!
Sambil minum teh, Anda membuat rencana. Anda tertarik dengan arena seluncur es yang cukup dekat dengan rumah, tetapi ini tidak cukup, Anda masih membutuhkan fasilitas. Sebaiknya biarkan arena seluncur ini gratis, dengan Wi-Fi dan toilet.
Anda menelepon banyak gelanggang es
A , dan yang nyaman -
B. Dan karena kami tertarik pada kedekatan dan kenyamanan, tujuan kami adalah untuk memotong set ini
A ∩
B. Di mana kita mendapatkan set ini?
Pergi melalui situs gelanggang es atau membaca ulasan Poster bukan metode Anda. Oleh karena itu, Anda pergi ke portal
data terbuka Moskow , atau lebih tepatnya, skrip Python melakukannya untuk Anda, sebuah contoh yang dapat ditemukan di situs web buku dalam dokumen
M02 - vektor (skating) . Anda menemukan bahwa ada banyak gelanggang es di Moskow - 1350. Bagaimana kita akan mencari? Di sini Anda mengingat buku teks tentang aljabar linier dan memahami bahwa Anda perlu memetakan rol ke dua ruang tanda yang Anda butuhkan: koordinat dua dimensi
(lintang, bujur) dan fasilitas tiga dimensi
(Wi-Fi, toilet, gratis) .
Di ruang kedua, keberadaan atribut akan menjadi satu, dan ketidakhadiran akan menjadi nol, yang berarti bahwa menormalkan data ini tidak lagi diperlukan. Kami juga tidak akan menormalkan koordinat, karena koordinat tersebut dapat dibandingkan di garis lintang kami (jika tidak, kami harus memilih titik referensi dan mengonversi derajat ke meter). Dan kemudian pilih hanya opsi yang paling menarik - mengapa Anda memerlukan arena skating, yang ada di sisi lain kota atau di mana jelas tidak ada fasilitasnya? Untuk setiap ruang, kami hanya akan mengambil data dengan jarak Euclidean terkecil ke target.
def topN(expected, data, N): norms = list(map( lambda row, number: (np.linalg.norm(row - expected), number), data, range(len(data))))
Semuanya sudah siap. Tetap hanya untuk mengintip suatu tempat koordinat kita sendiri (sekarang dapat dilakukan dalam aplikasi apa pun dengan peta) dan menemukan semua arena seluncur es yang cocok di
persimpangan himpunan
A dan
B :
me_geo = np.array([37.676289, 55.772266])
Untuk data dari contoh, di antara 30 arena terdekat, kami mendapatkan satu arena di Staraya Basmannaya, tetapi dengan semua fasilitasnya. Dan Anda bahkan bisa berjalan.

Coba gunakan portal data terbuka Moskow untuk menemukan secara mandiri Wi-Fi terbuka terdekat, bioskop musim panas, atau kamera pengintai halaman terdekat dengan Anda.