Laman » bagaimana untuk » Apakah Algoritma Komputer, dan Bagaimana Mereka Berfungsi?

    Apakah Algoritma Komputer, dan Bagaimana Mereka Berfungsi?

    Kecuali anda masuk ke dalam matematik atau pengaturcaraan, perkataan "algoritma" mungkin Greek kepada anda, tetapi ia adalah salah satu blok bangunan dari semua yang anda gunakan untuk membaca artikel ini. Berikut adalah penjelasan ringkas tentang apa yang mereka ada, dan bagaimana mereka berfungsi.

    Penafian: Saya bukan seorang guru sains matematik atau komputer, jadi tidak semua istilah yang saya gunakan adalah teknikal. Itu kerana saya cuba menerangkan semuanya dalam bahasa Inggeris biasa kerana orang tidak begitu selesa dengan matematik. Bahwa dikatakan, terdapat beberapa matematik yang terlibat, dan itu tidak dapat dielakkan. Geeks matematik, berasa bebas untuk membetulkan atau menjelaskan dengan lebih baik dalam komen, tetapi sila simpannya dengan mudah untuk matematik yang tidak disukai di kalangan kita.

    Imej oleh Ian Ruotsala

    Apa itu Algoritma?

    Perkataan 'algoritma' mempunyai etimologi yang mirip dengan 'algebra,' kecuali bahawa ini merujuk kepada ahli matematik Arab sendiri, al-Khwarizmi (hanya berita menarik). Algoritma, untuk bukan pengatur cara di kalangan kita, adalah satu set arahan yang mengambil input, A, dan memberikan output, B, yang mengubah data yang terlibat dalam beberapa cara. Algoritma mempunyai pelbagai aplikasi. Dalam matematik, mereka dapat membantu mengira fungsi dari titik dalam set data, di antara perkara yang lebih maju. Selain daripada penggunaannya dalam pengaturcaraan itu, mereka memainkan peranan utama dalam perkara seperti pemampatan fail dan penyulitan data.

    Satu Set Arahan Asas

    Katakan kawan anda bertemu dengan anda di kedai runcit dan anda membimbingnya ke arah anda. Anda mengatakan perkara-perkara seperti "masuk melalui pintu sebelah kanan," "lulus bahagian ikan di sebelah kiri," dan "jika anda melihat tenusu, anda meluluskan saya." Algoritma berfungsi seperti itu. Kita boleh menggunakan carta alir untuk menggambarkan arahan berdasarkan kriteria yang kita ketahui lebih awal daripada masa atau mengetahui semasa proses.

    (imej bertajuk "Icebreaking Routine" EDIT: courtesy of Trigger and Freewheel)

    Dari START, anda akan menuju ke jalan, dan bergantung pada apa yang berlaku anda mengikuti "aliran" ke hasil akhir. Carta aliran adalah alat visual yang boleh lebih memahami mewakili satu set arahan yang digunakan oleh komputer. Begitu juga, algoritma membantu melakukan perkara yang sama dengan lebih banyak model berasaskan matematik.

    Grafik

    Mari kita gunakan grafik untuk menggambarkan pelbagai cara yang boleh kita berikan arah.

    Kami dapat mengungkapkan graf ini sebagai sambungan antara semua titiknya. Untuk menghasilkan semula imej ini, kami boleh memberikan satu set arahan kepada orang lain.

    Kaedah 1

    Kita dapat mewakili ini sebagai satu siri titik, dan maklumat itu akan mengikut bentuk standard graf = (x1, y1), (x2, y2), ..., (xn, yn).

    Graf = (0,0), (3,0), (3,3), (5,5), (7,10), (8,7), (9,4), (10,1)

    Ia cukup mudah untuk merancang setiap titik, satu demi satu, dan menyambungkannya ke titik sebelumnya. Walau bagaimanapun, bayangkan graf dengan seribu mata atau segmen berganda yang semuanya berjalan setiap cara. Senarai itu akan mempunyai banyak data, bukan? Dan kemudian perlu menyambung setiap satu, satu demi satu, boleh menjadi kesakitan.

    Kaedah 2

    Satu lagi perkara yang boleh kita lakukan ialah memberikan titik permulaan, cerun garisan di antaranya dan titik seterusnya, dan tunjukkan di mana akan mengharapkan titik seterusnya menggunakan bentuk standard graf = (titik permulaan, [m1, x1, h1 Di sini, pembolehubah 'm' mewakili cerun garis, 'x' mewakili arah untuk mengira dalam (sama ada x atau y), dan 'h' memberitahu anda bagaimana ramai yang boleh mengira arah tersebut.Anda juga boleh ingat untuk merancang titik selepas setiap pergerakan.

    graf = (0,0), [0, x, 3], [0, y, 3], [1, x, 2], [2.5, x, 2], [-3, x, 1] [-3, x, 1], [-3, x, 1]

    Anda akan berakhir dengan graf yang sama. Anda dapat melihat bahawa tiga istilah terakhir dalam ungkapan ini adalah sama, jadi kami mungkin dapat memotongnya dengan hanya mengatakan "ulangi itu tiga kali" dalam beberapa cara. Katakan bahawa pada bila-bila masa anda melihat pembolehubah 'R' muncul, ia bermakna untuk mengulang perkara terakhir. Kita boleh melakukan ini:

    graf = (0,0), [0, x, 3], [0, y, 3], [1, x, 2], [2.5, x, 2], [-3, x, 1] [R = 2]

    Bagaimana jika mata individu tidak begitu penting, dan hanya grafik itu sendiri? Kami boleh menyatukan tiga bahagian terakhir seperti itu:

    graf = (0,0), [0, x, 3], [0, y, 3], [1, x, 2], [2.5, x, 2], [-3, x, 3]

    Ia memendekkan perkara-perkara yang sedikit dari tempat mereka dahulu.

    Kaedah 3

    Mari cuba lakukan ini dengan cara lain.

    y = 0, 0≤x≤3
    x = 0, 0≤y≤3
    y = x, 3≤x≤5
    y = 2.5x-7.5, 5≤x≤7
    y = -3x + 29, 7≤x≤8
    y = -3x + 29, 8≤x≤9
    y = -3x + 29, 9≤x≤10

    Di sini kita ada dalam istilah algebra tulen. Sekali lagi, jika mata itu sendiri tidak penting dan hanya graf itu, kita boleh menyatukan tiga perkara terakhir.

    y = 0, 0≤x≤3
    x = 0, 0≤y≤3
    y = x, 3≤x≤5
    y = 2.5x-7.5, 5≤x≤7
    y = -3x + 29, 7≤x≤10

    Sekarang, kaedah yang anda pilih bergantung kepada kebolehan anda. Mungkin anda hebat dengan matematik dan grafik, jadi anda memilih pilihan terakhir. Mungkin anda pandai menavigasi, jadi anda memilih pilihan kedua. Walau bagaimanapun, dalam bidang komputer, anda melakukan banyak tugas dan keupayaan komputer tidak benar-benar berubah. Oleh itu, algoritma dioptimumkan untuk tugas-tugas yang mereka selesaikan.

    Satu lagi perkara penting untuk diperhatikan ialah setiap kaedah bergantung pada kunci. Setiap set arahan tidak berguna jika anda tahu apa yang perlu dilakukan dengannya. Jika anda tidak tahu bahawa anda sepatutnya merancang setiap titik dan menyambungkan titik-titik itu, set pertama mata tidak bermakna apa-apa. Kecuali anda tahu apa maksud setiap pembolehubah dalam kaedah kedua, anda tidak akan tahu cara menerapkannya, sama seperti kunci kepada cip. Kekunci itu juga merupakan bahagian penting dalam menggunakan algoritma, dan sering kali, kekunci itu terdapat di dalam masyarakat atau melalui "standard".

    Mampatan Fail

    Apabila anda memuat turun fail .zip, anda mengeluarkan kandungan supaya anda boleh menggunakan apa sahaja yang ada di dalamnya. Pada masa kini, kebanyakan sistem operasi boleh menyelinap ke fail .zip seperti folder biasa, melakukan segala-galanya di latar belakang. Pada mesin Windows 95 saya selama satu dekad yang lalu, saya terpaksa mengeluarkan segala-galanya secara manual sebelum saya dapat melihat apa-apa lebih daripada nama fail di dalamnya. Itu kerana apa yang disimpan pada cakera sebagai fail .zip tidak dalam bentuk yang boleh digunakan. Fikirkan sofa yang menarik. Apabila anda ingin menggunakannya sebagai katil, anda perlu mengeluarkan kusyen dan membentangkannya, yang mengambil lebih banyak ruang. Apabila anda tidak memerlukannya, atau anda mahu mengangkutnya, anda boleh mencubanya semula.

    Algoritma mampatan diselaraskan dan dioptimumkan khusus untuk jenis fail yang mereka disasarkan. Format audio, sebagai contoh, masing-masing menggunakan cara yang berbeza untuk menyimpan data yang, apabila disahkod oleh codec audio, akan memberikan fail bunyi yang sama dengan bentuk gelombang asal. Untuk mendapatkan maklumat lanjut mengenai perbezaan tersebut, lihat artikel kami sebelum ini, Apakah Perbezaan Antara Semua Format Audio? Format audio tanpa fail dan fail .zip mempunyai satu perkara yang sama: kedua-duanya menghasilkan data asal dalam bentuk yang tepat selepas proses penyahmampatan. Codec audio yang berkurangan menggunakan cara lain untuk menjimatkan ruang cakera, seperti frekuensi pemangkasan yang tidak dapat didengar oleh telinga manusia dan melicinkan bentuk gelombang di bahagian-bahagian untuk menyingkirkan beberapa detail. Akhirnya, sementara kita mungkin tidak dapat mendengar perbezaan antara MP3 dan lagu CD, pastinya ada defisit maklumat dalam bekas.

    Penyulitan Data

    Algoritma juga digunakan semasa mendapatkan data atau talian komunikasi. Daripada menyimpan data supaya ia menggunakan ruang cakera kurang, ia disimpan dalam cara yang tidak dapat dikesan oleh program lain. Jika seseorang mencuri cakera keras anda dan mula mengimbasnya, mereka boleh mengambil data walaupun anda memadam fail kerana data itu sendiri masih ada, walaupun lokasi pemajuan padanya hilang. Apabila data disulitkan, apa sahaja yang disimpan tidak kelihatan seperti apa. Ia biasanya kelihatan rawak, seolah-olah pemecahan telah dibina dari masa ke masa. Anda juga boleh menyimpan data dan menjadikannya muncul sebagai satu lagi jenis fail. Fail imej dan fail muzik adalah baik untuk ini, kerana ia boleh menjadi agak besar tanpa menggambarkan kecurigaan, contohnya. Semua ini dilakukan dengan menggunakan algoritma matematik, yang mengambil beberapa jenis input dan mengubahnya menjadi jenis keluaran yang sangat spesifik. Untuk mendapatkan maklumat lanjut tentang cara kerja penyulitan, lihat HTG Menjelaskan: Apakah Penyulitan dan Bagaimana Ia berfungsi?


    Algoritma adalah alat matematik yang menyediakan pelbagai kegunaan dalam sains komputer. Mereka berfungsi untuk menyediakan laluan antara titik permulaan dan titik akhir dengan cara yang konsisten, dan memberikan arahan untuk mengikutinya. Ketahui lebih banyak daripada apa yang kami sifatkan? Kongsi penjelasan anda dalam komen!