Teori kebahagiaan. Pengantar Merphology

Saya terus berkenalan dengan para pembaca Habr dengan bab-bab dari bukunya "Theory of Happiness" dengan subtitle "Yayasan Matematika dari Hukum Makna." Ini belum diterbitkan buku sains populer, sangat informal menceritakan tentang bagaimana matematika memungkinkan Anda untuk melihat dunia dan kehidupan orang-orang dengan tingkat kesadaran yang baru. Ini untuk mereka yang tertarik pada sains dan bagi mereka yang tertarik pada kehidupan. Dan karena kehidupan kita kompleks dan, pada umumnya, tidak dapat diprediksi, penekanan dalam buku ini terutama pada teori probabilitas dan statistik matematika. Di sini teorema tidak terbukti dan dasar-dasar sains tidak diberikan, ini sama sekali bukan buku teks, tetapi apa yang disebut ilmu rekreasi. Tetapi justru pendekatan yang hampir menyenangkan yang memungkinkan kita untuk mengembangkan intuisi, mencerahkan kuliah untuk siswa dengan contoh-contoh nyata dan, akhirnya, menjelaskan kepada non-matematikawan dan anak-anak kita apa yang begitu menarik yang kita temukan dalam ilmu kering kita.



Ini adalah salah satu bab pertama di mana, menggunakan contoh pengendara sepeda, kami mempertimbangkan alat yang kami butuhkan untuk mengukur ketidakadilan: kurva Lorenz dan indeks Gini, serta Pareto yang terkenal jahat dan inspektur yang hebat.


Hukum adalah hukum


Dalam buku ini kita akan berbicara tentang berbagai masalah. Akrab, diharapkan, dan dapat diprediksi sehingga mereka menerima status hukum. Banyak dari mereka telah dirumuskan: ini adalah hukum sandwich jatuh, dan hukum Murphy: " Jika ada masalah dapat terjadi, itu akan terjadi. " Dan Chisholm mengundangkan topik: " Ketika semuanya berjalan dengan baik, sesuatu akan terjadi dalam waktu dekat. "dan pengamatan Ettore:" Belokan berikutnya selalu bergerak lebih cepat. "Kebanyakan dari mereka cukup sepele, tetapi menurut hukum Muir," Ketika kami mencoba menarik satu hal, ternyata itu terhubung dengan yang lain. "Kami akan mencoba menemukan kernel rasional dari undang-undang ini tapi tidak untuk untuk melawan mereka, tetapi untuk kesenangan. Dan karena kita akan menggunakan matematika dalam hal ini, kesenangan akan menjadi aneh dan bermanfaat, berbeda dengan hasilnya itu sendiri. Nah, jika alasan kita membawa kita terlalu jauh, kita dapat mengadopsi postulat Persigue: " Jumlah hipotesis masuk akal yang menjelaskan fenomena apa pun tidak terbatas. " Pada akhirnya, Grossman, mengutip Kh. L. Menkin dengan tepat menunjukkan bahwa " Kompleks masalah selalu memiliki solusi yang sederhana, mudah dipahami, salah. "

Beberapa masalah yang terjadi pada kita adalah alami dan ditentukan, dan beberapa bersifat stokastik, probabilistik.

Misalnya, jika Anda menurunkan gaji Anda sebesar 10%, dan kemudian meminta maaf dan meningkat sebesar 10%, maka pada akhirnya Anda kehilangan karena

x(10.1)(1+0.1)=x(10.01)<x.

Selain itu, jika gaji pertama kali dinaikkan, dan kemudian, bahkan tanpa meminta maaf, itu diturunkan dengan 10% yang sama, hasilnya akan sama, karena tidak masalah di mana untuk menggandakan koefisien. Ini sangat sederhana, ofensif, tetapi tidak ada hubungannya dengan keberuntungan.

Contoh lain dari masalah deterministik adalah keajaiban yang terjadi di saku kami dengan headphone: kami meletakkan headphone terlipat rapi di saku kami, dan setelah setengah jam keajaiban terjadi di sana, dan kami mengeluarkan seikat kawat liar dari saku kami. Pada tahun 2007, sebuah artikel ilmiah yang serius diterbitkan oleh dua ilmuwan dari San Diego yang cerah dan tenteram, “Pembentukan node secara spontan pada benang yang tereksitasi,” di mana kekaburan headphone di saku dianalisis dan dimodelkan secara terperinci. Para penulis, berdasarkan pada teori simpul, teori probabilitas dan eksperimen fisik, secara meyakinkan menunjukkan bahwa dengan metode belitan standar, headphone benar-benar perlu kusut, apalagi, setelah hanya beberapa detik bergetar. Namun, kami sudah mengamati ini, hanya kecepatan belitan yang disimpulkan tidak terduga di sini. Sangat mungkin untuk mengatasi gangguan ini dengan cara matematika: Anda perlu mengubah cara headphone dilipat - tidak dengan cincin yang cenderung membentuk simpul, tetapi dengan serangkaian loop pada arah yang berlawanan, seperti yang ditunjukkan pada gambar. Dengan metode pelipatan ini, loop saling menghancurkan satu sama lain dan node tidak terbentuk. Selama bertahun-tahun saya telah melipat headphone dengan cara ini, merasa seperti topologi yang keren, dan setiap kali saya bersukacita, seperti tipuan, ketika mereka melepaskan diri dari satu goyangan tangan yang ceroboh.

Salah satu metode melipat kabel, tidak mengarah ke kekusutan mereka. Dia juga pandai dalam kenyataan bahwa sepanjang jalan Anda meletakkan jari-jari Anda dalam mudra cinta.

Tetapi bahkan di antara hukum yang bersifat stokastik, tidak semua orang sama-sama menarik. Misalnya, hukum Buk: "Anda selalu menemukan kunci di saku terakhir Anda." tidak memiliki dasar rasional. Perhitungan sederhana menunjukkan bahwa dengan probabilitas yang sama untuk menemukan kunci untuk semua kantong, yang terakhir tidak berbeda dari yang lain. Apakah itu bahwa Anda akan secara acak memeriksa semua kantong, melihat ke dalamnya bagaimanapun dan beberapa kali. Dalam hal ini, fungsi probabilitas untuk jumlah kantong tempat tombol muncul Nkantong dijelaskan oleh distribusi geometris :

P(n)= frac1N kiri(1 frac1N kanan)n1,

dan jumlah kantong yang diharapkan akan sama N. Artinya, dalam arti tertentu, hukum Beech sedang diterapkan. Namun, dengan cara ini kita mencari kunci, kecuali kita benar-benar perlu masuk ke kamar kecil, dan kemudian ini sudah menjadi hukum kejahatan penuh.

Kami akan tertarik pada hukum yang paradoks dan instruktif, hukum yang terlihat seperti batu yang jahat, memilih dari banyak pilihan yang paling menjengkelkan dan tidak menyenangkan, bertentangan dengan intuisi yang menyarankan bahwa pilihan ini seharusnya bukan yang paling mungkin.

Jika panjang, panjang, panjang, jika panjang di sepanjang jalan ...


Saya penggemar berat bersepeda amatir. Apa yang bisa lebih baik daripada bergegas di sepanjang lintasan di pagi hari, di hawa dingin, berguling menuruni lereng ... perasaan ini layak untuk mengatasi tanjakan tanpa henti atau perlawanan terhadap angin sakal untuk itu! Benar, kadang-kadang tampaknya ada lebih banyak kenaikan daripada turun, dan angin berusaha keras untuk datang, ke mana pun Anda berbalik. Dalam buku-buku tentang merfologi dalam hal ini, hukum pengendara sepeda diberikan:
Ke mana pun Anda pergi - itu menanjak dan melawan arah angin.
Saya tinggal di Kamchatka, di Petropavlovsk ada banyak slide, dan berkuda di sekitar kota, mereka tidak dapat dihindari. Namun, saya harus diyakinkan oleh pemikiran bahwa memulai perjalanan dari rumah, saya pulang ke rumah lagi, yang berarti bahwa total keturunan harus sama dengan total pendakian. Rute radial akan sangat jujur. Bayangkan lintasan 2 km yang terdiri dari satu bukit simetris: satu kilometer ke atas, satu kilometer ke bawah. Saya bisa menanjak untuk waktu yang cukup lama dengan kecepatan 10 km / jam, dan pada saat turun saya mencoba menjaga kecepatan 40 km / jam (ya, saya berhati-hati dan mengendarai helm). Ini berarti bahwa saya akan menghabiskan waktu empat kali lebih banyak pada pendakian daripada pada keturunan, dan gambaran umum akan sebagai berikut: 4/5 dari waktu perjalanan akan dihabiskan untuk pendakian ringan, dan hanya 1/5 pada keturunan yang menyenangkan. Ternyata memalukan - 80% dari waktu berjalan terdiri dari bagian-bagian jalan yang sulit! Jika saya memompa keluar dari kota berbukit kami, menuju lautan atau ke lembah sungai Avachi, hampir tidak akan ada slide, tetapi saya masih memiliki angin sakal dan angin yang adil, atau bagian dengan jalan yang buruk.

Mari kita lihat hukum pengendara sepeda dari teori probabilitas. Jika saya mengambil banyak foto narsis selama naik sepeda, dan kemudian saya mulai mendapatkannya tanpa melihat dari paket campuran, sebagian besar gambar akan menunjukkan kepada saya sosok bengkok di helm oranye, dengan rendah hati merangkak menanjak atau melawan angin. Kemungkinan melihat pengendara sepeda terbang dan bersinar dalam gambar dari gambar iklan, sayangnya, hanya sekitar 20%. Dan apa yang akan dikatakan statistik? Jika kita mengeluarkan kerumunan besar pengendara sepeda di jalur berbukit, menunggu sebentar, dan mengamati kepadatan mereka, kita akan melihat bagaimana sebagian besar atlet berkerumun di daerah yang sulit, dan kemungkinan menemukan wajah tersenyum tenang di massa umum tidak akan begitu besar!

Hasil pemodelan simulasi pergerakan ensemble pengendara sepeda di jalur berbukit. Untuk setiap peserta dalam gerakan, kekuatannya diatur, ia menentukan kecepatan maksimumnya, baik pada saat naik maupun turun (hambatan udara diperhitungkan). Dapat dilihat seberapa cepat setelah dimulainya gerakan, sebagian besar ansambel terkonsentrasi pada naik.

Mari kita, seperti dulu di sekolah, menunjukkan pada grafik ketergantungan pergerakan pengendara sepeda tepat waktu, ketika bergerak di sepanjang bukit segitiga simetris. Kami hanya melakukan segala sesuatu dengan cara dewasa, pada skala tugas kami sendiri: kami akan mengukur jarak bukan dalam kilometer, tetapi dalam fraksi dari jalur umum, kami akan melakukan hal yang sama dengan waktu perjalanan. Paruh pertama jalan (segmen AB) pengendara sepeda bergerak perlahan dan untuk waktu yang lama - 4/5sepanjang waktu, dan yang kedua (segmen BC) teratasi dengan cepat - untuk 1/5waktu.


Jadwal pengendara sepeda dalam bagian dari total jalur dan waktu.

Ada satu cara yang sepenuhnya universal untuk menilai ketidakadilan dunia ini, yang diadopsi oleh para ahli ekonometrika, ahli demografi, ahli ekologi, atau pemasar - kurva Lorentz dan indeks Gini yang terkait. Untuk distribusi yang diketahui dari sesuatu yang bernilai, misalnya, uang, dalam populasi tertentu, adalah mungkin, setelah menyortir anggota himpunan dengan meningkatkan tingkat kekayaan, pertama, untuk membangun kurva kumulatif, menormalkan sumbu X dengan ukuran populasi, dan sumbu Y untuk kesejahteraan umum. Hasilnya adalah kurva bertuliskan nama ekonom Amerika Max Otto Lorenz. Ketika kami memplot pergerakan pengendara sepeda, kami pada dasarnya memplot kurva Lorenz untuk mendistribusikan kecepatan sepanjang bentangan jalur yang hanya terdiri dari dua kolom.


Distribusi kecepatan pengendara sepeda di sepanjang jalur yang dilalui.

Tentu saja, tidak setiap jadwal gerakan dapat dianggap sebagai kurva Lorentz. Sebelum Anda membangunnya, Anda perlu memilah periode perjalanan dengan meningkatkan kecepatan, dan kemudian melanjutkan ke konstruksi. Dengan kata lain, pertama-tama Anda perlu membangun histogram kecepatan, dan kemudian secara bertahap menambahkan kontribusi semua kolom histogram, dimulai dengan kontribusi nilai-nilai kecil, berakhir dengan yang terbesar. Hasilnya harus berupa kurva cekung di mana saja yang berada di bawah diagonal ( AC) Diagonal ini disebut kurva kesetaraan , dalam kasus kami ini sesuai dengan kecepatan konstan (rata-rata) di sepanjang jalur, atau histogram dengan satu kolom tunggal (fungsi densitas probabilitas berbentuk delta). Dan dalam arti ekonomi - kesetaraan universal kesejahteraan. Semakin banyak kurva Lorentz menyimpang dari kurva kesetaraan, semakin sedikit "adil" dapat dianggap distribusi. Segera setelah kita mempelajari hukum kekejaman dan ketidakadilan dunia kita, adalah bijaksana untuk menggunakan terminologi dan alat yang digunakan untuk mempelajari keadilan.

Area di bawah kurva Lorentz untuk distribusi apa pun selain distribusi seperti delta akan lebih kecil dari area di bawah kurva kesetaraan. Perbedaan mereka dapat berfungsi sebagai karakteristik formal dari ketidaksetaraan atau "ketidakadilan" distribusi. Karakteristik ini tercermin dalam indeks Gini . Ini dihitung sebagai area dua kali lipat dari gambar yang dibentuk oleh kurva kesetaraan dan kurva Lorentz. Untuk dunia yang ideal, indeks Gini adalah 0, dalam versi paling buruk cenderung ke satu. Dalam contoh yang kami teliti, itu adalah 0,35. Ini adalah indikator yang cukup bagus. Sebagai contoh, distribusi kekayaan di antara populasi di Rusia sekarang memiliki indeks Gini 0,39, di AS - 0,49, di Austria dan Swedia tidak melebihi 0,3, dan untuk seluruh dunia pada 2017 jumlahnya sebesar 0,66. Jadi situasi dengan pengendara sepeda, tentu saja, menghina dan tidak adil, tetapi cukup toleran.

Kami mempertimbangkan distribusi kecepatan berdasarkan jarak, dan apa yang akan terjadi jika kami diberi distribusi kecepatan berdasarkan waktu (kami membagi waktu tempuh menjadi interval dan menghitung jumlah interval dengan satu atau beberapa kecepatan lain). Karena dimensi diagram Lorentz yang tidak berdimensi, kita dapat kembali memplot kurva yang sesuai, dan bahkan membandingkan dengan hasil sebelumnya. Misalnya, biarkan separuh waktu perjalanan, katakanlah, satu jam, pengendara sepeda naik pada kecepatan 10 km / jam, dan satu jam pada kecepatan 40 km / jam (tidak masalah dalam urutan apa). Lalu 1/5 dari seluruh jalur akan jatuh ke kecepatan rendah, dan 4/5 ke kecepatan tinggi. Kurva Lorentz, dalam hal distribusi kecepatan dari waktu ke waktu, akan menjadi refleksi dari kurva Lorentz untuk distribusi kecepatan pada jarak, relatif terhadap diagonal, tegak lurus terhadap garis kesetaraan. Dalam hal ini, indeks Gini akan sama, karena ketika kurva dicerminkan, area di bawahnya tidak akan berubah. Jadi menurut tingkat ketidakadilan, dua kondisi yang berbeda ini ternyata sama, meskipun kasus kedua tampaknya jauh lebih menyenangkan!


Jadwal pergerakan (kurva Lorentz) dari pengendara sepeda dalam hal waktu perjalanan yang sama dengan dua kecepatan yang berbeda.

Harap dicatat, dengan bantuan beberapa indeks formal, kami mulai membandingkan hal-hal yang benar-benar berbeda dan tak tertandingi, itu menggoda dan berbahaya. Anda perlu menyadari bahwa indeks dan kriteria formal selalu sama dengan sesuatu, terlepas dari apakah itu masuk akal atau tidak. Kami membandingkan distribusi kekayaan di antara populasi negara dan distribusi waktu yang dihabiskan untuk mengatasi jalan dalam hal perbedaan dari beberapa opsi yang akan dianggap adil. Selama kita melakukan percakapan sembrono dan, kadang-kadang, hooligan tentang hukum kekejaman, mungkin ini adalah perbandingan yang dibenarkan, tetapi dalam matematika, tentu saja, ini tidak dapat dilakukan. Kurva Lorentz, dan darinya indeks Gini dapat dihitung secara formal untuk histogram kecerahan piksel dalam gambar atau untuk frekuensi kata-kata dalam pidato langsung, ini tidak akan memiliki hubungan dengan keadilan, dan akan ada sangat sedikit akal. Oleh karena itu, dengan mengingat indeks Gini untuk sesuatu yang mengerikan, kami akan menyebutnya indeks kekejaman agar tidak menyesatkan pembaca dengan keanehan istilah.

  


Kesimpulan bahwa pengendara sepeda menarik, terengah-engah: "dunia tidak adil dan sebagian besar energinya mengambil bagian paling bodoh dari pekerjaan", sering disebut sebagai prinsip Pareto atau prinsip "80/20" . Ini adalah empirisme absolut, tidak ada yang membuktikan prinsip Pareto, tetapi sering dikutip bahwa itu sudah memberi kesan kebenaran. Ini digunakan sebagai alasan dan sebagai instruksi, ia ditemukan dalam berbagai manifestasi dan kadang-kadang berfungsi, misalnya, prinsip "80/20" sesuai dengan indeks kejujuran urutan 0,6 - seperti untuk distribusi kekayaan di seluruh dunia. Memahami bahwa ini bukan plot nasib, tetapi matematika paling sederhana, yang tidak masuk akal untuk diperjuangkan, seseorang dapat belajar untuk menikmati baik yang berlarut-larut dan tahapan kerja yang membosankan namun tak terhindarkan, setidaknya memecahkan masalah dalam pikiran atau bermeditasi. Para Taois berjuang untuk hidup selamanya, dan dengan tepat beralasan bahwa, bersama dengan bekerja pada tubuh, untuk mencapai tujuan mereka, persiapan pikiran diperlukan. Memang, untuk kehidupan abadi, Anda tidak hanya membutuhkan kemampuan untuk melepaskan keterikatan, tetapi juga kesabaran, serta kemampuan untuk menikmati peregangan panjang.

Prinsip Pareto memiliki generalisasi yang lebih ketat yang berguna untuk pemahaman. Hukum kekejaman, dinamai pengendara sepeda tanpa nama, memiliki judul ilmiah resmi: paradoks inspeksi . Fenomena yang terkenal ini ditemukan dalam berbagai penelitian yang berkaitan dengan survei sosiologis, pengujian dalam teori kegagalan (bagian dari matematika terapan yang berhubungan dengan keandalan sistem yang kompleks), secara implisit namun sistematis menggeser hasil yang diamati ke fenomena yang lebih sering diamati.

Mari kita beri contoh klasik, dengan survei terhadap penumpang angkutan umum. Banyak bus beroperasi di jalur per hari, pada jam yang relatif singkat bus meluap, dan sisa waktu mereka berjalan hampir kosong. Jika kita menginterogasi penumpang, maka sebagian besar dari mereka akan berada di bus yang penuh sesak (hanya ada lebih banyak orang di sana), dan kita akan mendapatkan ekspresi ketidakpuasan umum. Jika kita mewawancarai pengemudi, mereka akan mengeluh tentang ketidaklengkapan sebagian besar rute dan tidak masuk akalnya pihak berwenang membuat mereka sia-sia. Jadwal yang fleksibel akan memperlancar situasi, tetapi, dalam hal apa pun, kurva Lorentz akan menyimpang dari kurva kesetaraan yang sesuai dengan situasi luar biasa dari selalu jumlah penumpang yang sama di semua bus.

Dalam pengantar teori probabilitas, tas buram khusus sering ditemukan, di mana matematikawan meletakkan berbagai objek, dan kemudian secara acak menariknya keluar, kadang-kadang membuat kesimpulan yang sangat bijaksana. Solusi untuk paradoks adalah kita menganalisis sistem arus penumpang secara keseluruhan dan memasukkan bus ke dalam tas, dan melakukan survei, kita mengambil penumpang keluar secara acak (memeriksa) dan mencoba untuk menarik kesimpulan berdasarkan pada mereka. Gambar menunjukkan perbedaannya:

Statistik bus mengatakan bahwa 75% di antaranya gratis dan tidak berguna. Pada saat yang sama, survei penumpang akan menemukan bahwa 64% penumpang yang bepergian pada hari itu menggunakan kendaraan yang penuh sesak.

Mari kita lihat situasi ini dengan merencanakan kurva Lorenz, kali ini, yang asli, untuk jumlah penumpang di bus dari angka sebelumnya. Untuk melakukan ini, Anda perlu mengurutkan bus berdasarkan jumlah penumpang dan secara berurutan meringkas kontribusi masing-masing bus terhadap total arus penumpang:


Kurva Lorenz dengan baik menggambarkan ketidakadilan yang diamati dari situasi bus: setengah dari bus hanya membawa seperlima dari arus penumpang.

Kurva Lorentz, dalam hal ini, menunjukkan bagaimana kuantil dari distribusi jumlah elemen dalam beberapa kelompok (sumbu horizontal) digeser ketika menganalisis distribusi elemen sesuai dengan keanggotaan grup (sumbu vertikal). Ini, pada kenyataannya, adalah paradoks inspeksi: gambar yang diamati inspektur ternyata terdistorsi, karena ia tidak menganalisis kelompok, tetapi elemen-elemen kelompok, sedangkan rata-rata dan median yang diamati bergeser ke arah yang lebih "berbobot" dari distribusi.

Dengan sendirinya, hukum pengendara sepeda kami sangat sederhana, tetapi itu akan memperburuk hukum kekejaman lainnya setiap saat, menambah nada emosi yang cemberut pada mereka. Berpikir tentang hukum kekejaman, saya suka berpikir tentang distorsi persepsi inspektur tentang dunia dalam hal mengubah kurva warna gambar. Di editor grafik raster, kami menggunakan alat Curves untuk memodifikasi gambar, menggeser distribusi jumlah piksel dalam kecerahan. Di sini, misalnya, bagaimana kurva Lorentz yang kami peroleh untuk bus mengubah persepsi realitas. Gambaran dunia semakin gelap, seperti yang kita harapkan.


Kurva Lorentz dari contoh, digunakan sebagai filter "Kurva" di editor grafis raster, membuat gambar bus Kamchatka terlihat lebih gelap. Mengeluh bahwa bus “selalu terlambat” dan “selalu penuh dengan orang”, nikmati kenyataan bahwa ini hanyalah ilusi yang terkait dengan paradoks inspeksi!

Paradoks inspeksi dapat memanifestasikan dirinya dalam ekstremnya: jika di antara kelompok-kelompok unsur yang ditempatkan dalam tas teoretis kita ada orang-orang yang unsur-unsurnya tidak hanya langka tetapi tidak dapat diamati sama sekali, kita mendapatkan kesalahan sistematis dari orang yang selamat.. Fenomena ini sering diceritakan dalam berbagai artikel yang mendemotivasi, untuk para pebisnis pemula dan pemrogram, meyakinkan mereka bahwa jalur sukses yang dijelaskan dalam buku-buku itu kemungkinan besar bukan untuk mereka, karena, kata mereka, buku-buku yang gagal tidak ditulis. Namun, ini tidak ada hubungannya dengan hukum kekejaman, jadi mari kita tinggalkan argumen ini. Pada umumnya, paradoks yang dideskripsikan adalah kesalahan metodologis yang dibuat ketika menerima dan memproses data, hal ini berguna untuk mengetahui tentang mereka, tetapi, sayangnya, mereka mengarah pada opini yang luas tentang statistik sebagai manipulasi data aktual yang aktual di antara orang yang sangat jauh dari metode ini.

Kita akan bertemu dengan hukum pengendara sepeda dan pengaruhnya lebih dari sekali: berdiri dalam barisan atau di halte bus, mengamati ketidakadilan distribusi kekayaan. Dan kurva Lorentz dan indeks jahat akan memungkinkan kita untuk berani membandingkan di antara mereka hal-hal yang sangat berbeda. Matematika adalah ilmu pasti, tetapi tidak ada yang melarang ahli matematika untuk berperilaku buruk. Dalam lingkarannya, tentu saja, dan tanpa pertengkaran.



Pengalaman menerbitkan bab tentang Habré ternyata sangat berguna: komentar pembaca memungkinkan saya untuk mengoreksi kata-katanya, memperluas serangkaian contoh dan wawasan saya sendiri. Saya akan senang untuk berbicara dalam buku itu sendiri tentang bagaimana komunitas kami telah membantu dalam mengeditnya dan berterima kasih kepada para pencipta dan penduduk Habr karena berpartisipasi dalam penulisan.

Source: https://habr.com/ru/post/id416941/


All Articles