2345联盟安装系统,2345系统安装,2345联盟推广,2345系统下载,2345一键安装,2345联盟官网,2345系统重装,2345联盟注册,2345系统ISO,2345联盟赚钱,2345系统纯净版,2345联盟代理,2345系统安装教程,2345联盟任务,2345系统GHOST,2345联盟提现,2345系统激活,2345联盟作弊,2345系统兼容,2345联盟软件,2345系统优化,2345联盟平台,2345系统64位,2345联盟合作,2345系统安装包,2345联盟返利,2345系统正版,2345联盟推广方法,2345系统U盘安装,2345联盟佣金,2345系统驱动,2345联盟规则,2345系统PE安装,2345联盟账号,2345系统备份,2345联盟体验,2345系统安全,2345联盟教程,2345系统定制,2345联盟审核,2345系统更新,2345联盟收益,2345系统版本,2345联盟玩法,2345系统装机,2345联盟策略,2345系统镜像,2345联盟工具,2345系统硬盘安装,2345联盟评价,2345系统使用,2345联盟常见问题,2345系统修复,2345联盟经验,2345系统启动盘,2345联盟优缺点,2345系统卸载,2345联盟数据,2345系统破解,2345联盟合规,2345系统封装,2345联盟技巧,2345系统设置,2345联盟骗局,2345系统还原,2345联盟真实性,2345系统速度,2345联盟心得,2345系统内存,2345联盟流程,2345系统错误,2345联盟风险,2345系统蓝屏,2345联盟免责,2345系统安装失败,2345联盟客服,2345系统帮助,2345联盟反馈,2345系统推荐,2345联盟口碑,2345系统评测,2345联盟对比,2345系统性能,2345联盟总结,2345系统最新版,2345联盟2026,2345系统安装步骤,2345联盟SEO,2345系统关键词,2345联盟排名,2345系统搜索,2345联盟引流,2345系统优化技巧,2345联盟流量,2345系统装机量,2345联盟转化率,2345系统用户评价,2345联盟成功率,2345系统安装时长,2345联盟收益截图,2345系统兼容性,2345联盟操作,2345系统自动安装,2345联盟心得分享,2345系统静默安装,2345联盟实战,2345系统无人值守,2345联盟经验分享,2345系统快速安装,2345联盟教程大全,2345系统安装问题,2345联盟解决方案 后台管理
📢 欢迎访问系统之家!所有资源均经过安全检测。

Algoritma

发布时间:2026-08-23 | 浏览:1
📥 下载地址(文章开头)
装机神器,快速安装一切系统。
Dalam matematika dan ilmu komputer , algoritma adalah rangkaian terbatas dari instruksi-instruksi yang rumit, biasanya digunakan untuk menyelesaikan atau menjalankan suatu kelompok masalah komputasi tertentu. Algoritma digunakan sebagai spesifikasi untuk melakukan perhitungan dan pemrosesan data . Algoritma yang lebih mutakhir dapat melakukan deduksi otomatis (disebut sebagai penalaran otomatis) dan menggunakan tes matematis dan logis untuk mengarahkan eksekusi kode melalui berbagai rute (disebut sebagai pengambilan keputusan otomatis). Penggunaan karakteristik manusia sebagai deskriptor mesin secara metaforis telah dipraktikkan oleh Alan Turing dengan terminologi seperti "memory", "search" dan "stimulus". [ 1 ] Sebaliknya, heuristika adalah pendekatan untuk pemecahan masalah komputasi yang mungkin tidak sepenuhnya terspesifikasi atau tidak menjamin hasil yang benar atau optimal, terutama dalam ranah masalah komputasi yang mana tidak ada hasil yang benar atau optimal yang terdefinisi dengan baik. [ 2 ] Sebagai metode yang efektif, algoritma dapat diekspresikan dalam jumlah ruang dan waktu yang terbatas, [ 3 ] dan dalam bahasa formal yang terdefinisi dengan baik [ 4 ] untuk menghitung suatu fungsi . [ 5 ] Dimulai dari tataran awal dan input awal (bisa jadi kosong), [ 6 ] instruksi-instruksi yang ada menggambarkan sebuah komputasi yang, ketika dieksekusi, berjalan melalui sejumlah tataran dengan jumlah terhingga yang terdefinisi dengan baik, [ 7 ] yang pada akhirnya menghasilkan "output" [ 8 ] dan berakhir pada tataran final akhir. Transisi dari satu tataran ke tataran berikutnya tidak selalu baku; beberapa algoritma, yang dikenal sebagai algoritma acak, menggabungkan input acak. [ 9 ] Konsep algoritma telah ada sejak zaman prasejarah. Algoritma aritmetika , seperti algoritma divisi, digunakan oleh matematikawan Babilonia kuno sekitar tahun 2500 SM dan matematikawan Mesir sekitar tahun 1550 SM. Matematikawan Yunani kemudian juga menggunakan algoritma pada 240 SM sebagaimana yang terdapat pada Tapis Eratosthenes untuk menemukan bilangan prima, dan Algoritma Euklides untuk menemukan pembagi persekutuan terbesar dari dua bilangan. [ 10 ] Matematikawan Arab seperti al-Kindi pada abad ke-9 menggunakan algoritma kriptografi untuk pemecahan kode, berdasarkan analisis frekuensi. Kata algoritma berasal dari nama matematikawan Persia abad ke-9, Muḥammad bin Mūsā al-Khwārizmī , yang nisbah -nya (yang mengidentifikasikannya sebagai seseorang yang berasal dari Khwarezmia ) dilatinkan sebagai Algoritmi (bahasa Persia yang diarabkan: الخوارزمی sekitar: 780-850). [ 11 ] [ 12 ] Namanya bermakna 'yang berasal dari (daerah) Khwarezmia ', sebuah daerah yang dulunya merupakan bagian dari Iran Raya dan sekarang sebagai bagian dari Uzbekistan . [ 13 ] [ 14 ] Sekitar tahun 825, Al-Khwarizmi menulis sebuah risalah berbahasa Arab tentang sistem angka Hindu-Arab , yang diterjemahkan ke dalam bahasa Latin selama abad ke-12. Naskah ini dimulai dengan frasa Dixit Algorizmi ('Maka berkatalah Al-Khwarizmi'), di mana "Algorizmi" di sini adalah Latinisasi penerjemah akan nama Al-Khwarizmi. [ 15 ] Bukunya yang bernama Aljabar menjadi salah satu buku matematikawan yang paling banyak dibaca di Eropa pada abad pertengahan. [ 16 ] Dalam bahasa Latin abad pertengahan, kata algorismus, yang merupakan pengadaptasian dari namanya, menjadi kata yang bermakna "sistem bilangan desimal". [ 17 ] Pada abad ke-15, di bawah pengaruh kata Yunani ἀριθμός (arithmos), 'angka' (lih. 'aritmetika'), kata Latin-nya diubah menjadi algorithmus. [ 18 ] Dalam bahasa Inggris , kata algorithm pertama kali digunakan pada sekitar tahun 1230 dan kemudian oleh Chaucer pada 1391. Bahasa Inggris mengadopsi istilah tersebut dari bahasa Prancis , akan tetapi baru pada abad ke-19 lah kata "algorithm" mulai memiliki makna seperti sekarang yang ada dalam bahasa Inggris modern. [ 19 ] Matematika India pada awalnya sebagian besar berbentuk algoritmik. Algoritma yang mewakili tradisi matematika India berkisar dari Śhulba Sūtrā dari beberapa abad sebelum masehi hingga teks-teks abad pertengahan dari Sekolah Kerala akan Astronomi dan Matematika. [ 20 ] Pemakaian awal lainnya dari kata ini berasal dari tahun 1240, dalam sebuah manual berjudul Carmen de Algorismo yang disusun oleh Alexandre de Villedieu. Yang kalimatnya diawali dengan: Haec algorismus ars praesens dicitur, in qua / Talibus Indorum fruimur bis quinque figuris. Algorisme adalah ilmu yang saat ini kita gunakan untuk menghitung dengan angka-angka India, yang jumlahnya ada dua kali lima (sepuluh). Puisi ini panjangnya beberapa ratus baris dan merangkum ilmu menghitung dengan angka-angka yang diadopsi dari India . [ 21 ] Formalisasi parsial dari konsep algoritma modern dimulai dengan upaya untuk memecahkan Entscheidungsproblem (masalah pengambilan keputusan) yang diajukan oleh David Hilbert pada tahun 1928. Formalisasi selanjutnya dibingkai sebagai upaya untuk mendefinisikan "kalkulabilitas efektif" [ 22 ] atau "metode efektif". [ 23 ] Formalisasi tersebut termasuk fungsi rekursif Gödel -Herbrand-Kleene pada tahun 1930, 1934 dan 1935, kalkulus lambda Alonzo Church pada tahun 1936, Formulasi 1 Emil Post pada tahun 1936, dan mesin Turing -nya Alan Turing pada tahun 1936-37 dan 1939. Definisi informal Definisi informalnya bisa berarti "sekumpulan aturan yang secara tepat menentukan seurutan operasi". [ 24 ] yang mengikutkan semua program komputer, termasuk program yang tidak melakukan perhitungan numerik. Secara umum, sebuah program hanyalah sebuah algoritma jika ia akan berhenti nantinya. [ 25 ] Sebuah contoh prototipikal dari suatu algoritma adalah algoritma Euclid untuk menentukan bilangan pembagi terbesar dari dua integer; sebagai contohnya (ada contoh yang lain) dijelaskan dengan diagram alur di atas dan sebagai contoh di bagian lanjut. ( Boolos & Jeffrey 1974, 1999 ) memberikan sebuah makna informal dari kata algoritma dalam persamaan berikut: Tidak ada manusia yang dapat menulis begitu cepat, atau begitu lama, atau begitu kecil ("kecil, dan lebih kecil tanpa batas ... anda mungkin mencoba menulis di atas molekul, atom, elektron") untuk mencatat semua anggota dari kumpulan bilangan tak terbatas dengan menuliskan namanya, bergantian, dalam suatu notasi. Tapi manusia bisa melakukan sesuatu yang sama bergunanya, pada kasus kumpulan bilangan tak terbatas: Mereka dapat memberikan instruksi jelas untuk menentukan anggota ke- n dari set , untuk n terbatas acak. Instruksi tersebut diberikan secara eksplisit, dalam bentuk yang dapat diikuti oleh mesin penghitung , atau oleh manusia yang mampu melakukan hanya operasi-operasi dasar dengan simbol-simbol. [ 26 ] Suatu "bilangan tak-terbatas" adalah bilangan yang elemen-elemenya bisa berkorespondensi satu-ke-satu dengan integer. Maka, Boolos dan Jeffrey mengatakan bahwa sebuah algoritma berarti instruksi bagi sebuah proses yang "membuat" keluaran integer dari sebuah "masukan" acak integer yang, secara teori, bisa sangat besar. Maka sebuah algoritma dapat berupa persamaan aljabar seperti y = m + n -- dua variabel masukan m dan n yang menghasikan keluaran y . Tapi berbagai penulis yang mencoba mendefinisikan persamaan tersebut mengatakan bahwa kata algoritma mengandung lebih dari itu, sesuatu yang kurang lebih (untuk contoh penjumlahan): Konsep dari algoritma juga digunakan untuk mendefinisikan notasi dari desidabilitas . Notasi tersebut adalah pusat untuk menjelaskan bagaimana sistem formal berasal dari sejumlah kecil aksioma dan aturan. Dalam logika , waktu dari sebuah algoritma untuk selesai tidak dapat dihitung, karena tidak berelasi dengan dimensi fisik kita. Dari ketidakpastian tersebut, yang mengkarakteristikan pekerjaan yang sedang berjalan, timbulah ketidak-tersediannya definisi algoritma yang sesuai dengan konkret (pada tingkat tertentu) dan penggunaan secara abstrak dari istilah tersebut. Algoritma sangat penting bagi cara komputer mengolah data. Banyak program komputer mengandung algoritma memberikan rincian pada instruksi khusus yang komputer harus lakukan (dengan urutan tertentu) untuk menjalankan pekerjaan tertentu, seperti menghitung gaji karyawan atau mencetak kartu rapor siswa. Maka, sebuah algoritma bisa dianggap sebagai urutan operasi yang bisa disimulasikan oleh sebuah sistem Turing-lengkap . Penulis yang mendukung tesis ini termasuk Minsky (1967), Savage (1987), dan Gurevich (2000): Minsky: "Tapi kita juga menjaga, dengan Turing ... bahwa setiap prosedur yang "secara alami" disebut efektif, bisa dinyatakan oleh mesin (sederhana). Walaupun tampaknya ekstrem, alasan tersebut ... sukar disanggah". [ 32 ] Gurevich: "... argumen informal Turing untuk menyokong tesis ini membenarkan tesis yang lebih kuat: setiap algoritma bisa disimulasikan oleh sebuah mesin Turing ... menurut Savage [1987], sebuah algoritma adalah sebuah proses penghitungan yang ditentukan oleh sebuah mesin Turing". [ 33 ] Biasanya, bila sebuah algoritma dihubungkan dengan pengolahan informasi, data dibaca dari sumber masukan, ditulis ke perangkat keluaran, dan/atau disimpan untuk pengolahan selanjutnya. Data simpanan dianggap sebagai bagian dari keadaan internal dari entitas yang melakukan algoritma. Pada praktiknya, keadaan tersebut disimpan pada satu atau lebih struktur data . Untuk beberapa proses komputasi, algoritma harus ditentukan secara teliti: dijabarkan dengan cara ia bakal berlaku untuk semua kemungkinan yang dapat timbul. Yaitu, setiap langkah tambahan harus secara sistematis dihadapi, kasus-per-kasus; Kriteria bagi setiap kasus harus jelas (dan bisa dihitung). Karena sebuah algoritma adalah kumpulan dari langkah-langkah yang tepat, urutan dari komputasi selalu penting bagi berfungsinya algoritma. Instruksi biasanya diasumsikan terdaftar secara eksplisit, dan dijelaskan dimulai "dari atas" dan terus "ke bawah", sebuah gambaran yang dijelaskan secara formal oleh alur kontrol Sejauh ini, diskusi tentang formalisasi algoritma telah mengasumsikan premis dari pemrograman imperatif . Hal ini merupakan konsepsi umum, yang mencoba menjelaskan sebuah pekerjaan dalam makna diskrit dan "mekanis". Keunikan dari konsepsi formalisasi algoritma adalah operasi penetapan , mengatur nilai dari sebuah variabel. Ia berasal dari intuisi " ingatan " sebagai kertas buram. Contoh operasi penetapan tersebut ada di bawah. Untuk konsepsi yang lain dari apa yang membentuk sebuah algoritma lihat pemrograman fungsional dan pemrograman logika . Menggambarkan algoritma Algoritma dapat digambarkan dengan banyak notasi, termasuk bahasa alamiah , pseudokode , diagram alur , bagan drakon , bahasa pemrograman atau tabel kontrol (diproses oleh penerjemah ). Ekspresi bahasa alamiah terhadap algoritma condong lebih banyak dan rancu, dan jarang digunakan untuk algoritma yang kompleks dan teknis. Pseudokode, diagram alur, bagan drakon, dan tabel kontrol adalah cara yang terstruktur untuk menggambarkan algoritma yang mencegah banyaknya kerancuan pada pernyataan-pernyataan bahasa alamiah. Bahasa pemrograman ditujukan untuk mengekspresikan algoritma dalam sebuah bentuk yang dapat dieksekusi oleh komputer, tetapi sering kali digunakan sebagai suatu cara untuk menentukan atau mendokumentasikan algoritma. Ada banyak macam kemungkinan representasi dan seseorang dapat mengekspresikan sebuah program mesin Turing sebagai urutan dari tabel-tabel mesin (lihat lebih lanjut di mesin kondisi-terbatas , tabel transisi kondisi dan tabel kontrol ), sebagai diagram alur dan bagan drakon (lihat lebih lanjut di diagram kondisi ), atau sebagai bentuk kode mesin atau kode assembly dasar yang dikenal "kumpulan lipat empat" (lihat lebih lanjut di mesin Turing ). Representasi dari algoritma dapat dikelompokan ke dalam tiga tingkatan dari deskripsi mesin Turing: [ 34 ] Sebagai contoh dari algoritma sederhana "Penjumlahan m+n" dijelaskan dalam tiga tingkatan tersebut lihat contoh algoritma . Kebanyakan algoritma ditujukan untuk diimplementasikan sebagai program komputer . Namun, algoritma juga diimplementasikan dengan tujuan lain, seperti dalam jaringan saraf biologis (sebagai contohnya, otak manusia yang mengimplementasikan aritmetika atau sebuah serangga yang melihat makanan), dalam sirkuit elektris , atau dalam sebuah perangkat mekanis. Algoritma komputer Dalam sistem komputer , sebuah algoritma pada dasarnya adalah instansi dari logika ditulis dalam perangkat lunak oleh pengembang perangkat lunak supaya efektif untuk komputer yang "ditargetkan" untuk mesin tertentu untuk menghasilkan keluaran dari masukan yang diberikan (kemungkinan nul). Program yang "elegan" (padat), program yang "baik" (cepat) : Pernyataan dari "sederhana dan elegan" muncul secara informal dalam buku Knuth dan dalam Chaitin: Chaitin membuka definisinya dengan: "Saya akan perlihatkan bahwa anda tidak dapat membuktikan sebuah program adalah 'elegan'"—bukti tersebut akan menyelesaikan permasalahan perhentian (ibid). Algoritma terhadap fungsi yang dapat dihitung oleh algoritma : Untuk sebuah fungsi bisa ada beberapa algoritma. Hal ini benar, bahkan tanpa mengembangkan kumpulan instruksi yang ada bagi programmer. Rogers mengamati bahwa "Sangat ... penting untuk membedakan antara pengertian algoritma , misalnya prosedur dan pernyataan fungsi yang dihitung oleh algoritma , misalnya pemetaan hasil dari prosedur. Fungsi yang sama bisa memiliki beberapa algoritma berbeda". [ 37 ] Sayangnya ada pertukaran antara kebaikan (kecepatan) dan elegan (kepadatan) -- sebuah program yang elegan bisa melakukan lebih banyak langkah untuk menyelesaikan sebuah komputasi daripada yang kurang elegan. Sebuah contoh yang menggunakan algoritma Euclid bisa dilihat di bawah. Komputer (dan komputor), model dari komputasi : Sebuah komputer (atau manusia "komputor" [ 38 ] ) adalah tipe terbatas dari mesin, sebuah "perangkat mekanis deterministik diskrit" [ 39 ] yang secara buta mengikuti instruksinya. [ 40 ] Model primitif dari Melzak dan Lambek [ 41 ] mereduksi pemikiran tersebut menjadi empat elemen: (i) diskrit, lokasi yang bisa dibedakan, (ii) diskrit, penghitung yang tak bisa dibedakan [ 42 ] (iii) sebuah agen, dan (iv) sebuah daftar instruksi yang efektif relatif terhadap kemampuan dari agen. [ 43 ] Minsky menjelaskan variasi yang lebih sesuai dari model "abacus"-nya Lambek dalam "Basis Komputabilitas Paling Sederhana". [ 44 ] Mesin Minsky memproses secara berurutan lewat lima (atau enam tergantung bagaimana seseorang menghitungnya) instruksi kecuali baik sebuah kondisi IF-THEN GOTO atau GOTO tak bersyarat mengubah alur program keluar dari urutan. Selain HALT, mesin Minsky mengikutkan tiga operasi penetapan (penggantian, substitusi): [ 45 ] ZERO (misalnya, isi dari lokasi diganti oleh 0: L ← 0), SUCCESSOR (misalnya, L ← L+1), dan DECREMENT (misalnya, L ← L-1). [ 46 ] Jarang seorang programer harus menulis "kode" dengan kumpulan instruksi terbatas. Tapi Minsky memperlihatkan (sebagaimana Melzak dan Lambek) bahwa mesinnya adalah Turing komplet dengan hanya empat tipe instruksi utama: GOTO kondisional, GOTO tak bersyarat, penetapan/penggantian/substitusi, dan HALT. [ 47 ] Simulasi dari sebuah algoritma: bahasa komputer (komputor) : Knuth menganjurkan pembaca bahwa "cara terbaik untuk belajar algoritma dalah mencobanya ... langsung ambil pulpen dan kertas dan bekerja lewat contoh". [ 48 ] Lalu bagaimana dengan simulasi atau eksekusi yang sebenarnya? Programmer harus menerjemahkan algoritma ke dalam bahasa yang mana simulator/komputer/komputor dapat mengeksekusi secara efektif . Stone memberikan contoh dari hal ini: saat menghitung akar dari persamaan kuadrat si komputor harus tahu bagaimana mendapatkan akar kuadrat. Jika tidak maka supaya algoritma dapat efektif ia harus menyediakan sejumlah aturan untuk mengekstrak akar kuadrat. [ 49 ] Hal ini berarti programer harus tahu sebuah "bahasa" yang efektif relatif terhadap target pada agen komputasi (komputer/komputor). Lalu model apa yang seharusnya digunakan untuk simulasi? Van Emde Boas mengamati "bahkan bila kita mendasari teori kompleksitas dengan mesin abstrak bukannya mesin konkret, kesembarangan dari pemilihan model masih tetap ada. Pada titik itulah mulainya pemikiran simulasi ". [ 50 ] Bila kecepatan yang dihitung, jumlah instruksi berpengaruh. Sebagai contohnya, subprogram dalam algoritma Euclid untuk menghitung sisa akan berjalan lebih cepat jika programmer memiliki instruksi "modulus" (sisa pembagian) bukannya dengan pengurangan (atau lebih parah: hanya "penurunan"). Pemrograman terstruktur, struktur kanonikal : Menurut Tesis Church-Turing setiap algoritma bisa dihitung dengan sebuah model yang dikenal Turing komplet , dan menurut demonstrasi Minsky kekomplitan Turing membutuhkan hanya empat tipe instruksi—GOTO bersyarat, GOTO tak bersyarat, penetapan, HALT. Kemeny dan Kurtz mengamati bahwa saat penggunaan GOTO tak bersyarat yang "tak disiplin" dan IF-THEN GOTO bersyarat bisa menghasilkan " kode spageti " seorang programer bisa menulis program terstruktur menggunakan instruksi tersebut; di lain sisi "juga memungkinkan, dan tidak begitu sulit, untuk menulis sebuah program terstruktur yang buruk dalam sebuah bahasa terstruktur". [ 51 ] Tausworthe menambahkan tiga struktur kanon Bohm-Jacopini : [ 52 ] SEQUENCE, IF-THEN-ELSE, dan WHILE-DO, dengan dua lagi: DO-WHILE dan CASE. [ 53 ] Keuntungan dari program terstruktur adalah ia cocok dengan pembuktian kebenaran menggunakan induksi matematika . [ 54 ] Simbol diagram alur [ 55 ] : Pembantu grafik yang disebut diagram alur memberikan suatu cara untuk menjelaskan dan mendokumentasikan sebuah algoritma (dan program komputer). Seperti alur program dari mesin Minsky, sebuah diagram alur selalu mulai dari atas dan terus ke bawah. Simbol utamanya hanya 4: arah panah memperlihatkan alur program, segi empat (SEQUENCE, GOTO), wajik (IF-THEN-ELSE), dan titik (OR). Struktur kanonikal Bohm-Jacopini dibuat dari bentuk-bentuk primitif tersebut. Sub-struktur bisa "bersarang" dalam segi empat hanya jika jalan keluar tunggal terjadi pada super-struktur. Simbol dan penggunaannya untuk membangun struktur kanonikal diperlihatkan dalam diagram. Contoh Algoritma Salah satu dari algoritma sederhana adalah menemukan bilangan terbesar dalam sebuah deretan angka (tak berurut). Solusinya membutuhkan pemeriksaan setiap angka dalam deret, tetapi hanya sekali. Dari hal ini munculah algoritma sederhana, yang bisa dinyatakan dalam kalimat bahasa deskripsi tingkat-tinggi, sebagai: Deskripsi tingkat-tinggi: Jika tidak ada angka dalam deret makan tidak ada bilangan terbesar. Asumsikan item pertama dalam deret adalah yang terbesar. Untuk setiap sisa angka dalam deret, jika angka tersebut besar dari angka terbesar sekarang, anggap angka tersebut menjadi yang terbesar dalam deret. Bila tidak ada lagi angka yang tersisa pada deret untuk diperiksa, anggap angka terbesar sekarang menjadi angka yang terbesar dalam deret. Deskripsi (Quasi-)formal: Ditulis dalam kalimat yang lebih dekat dengan bahasa tingkat-tinggi dari program komputer, berikut ini adalah kode formal dari algoritma dalam pseudokode atau kode pijin : "←" adalah singkatan untuk "diubah menjadi". Misalnya, " terbesar ← item " artinya nilai dari terbesar diubah menjadi nilai dari item . " kembalikan " mengakhiri algoritma dan mengeluarkan nilai kembalian. Algoritma Euclid Algoritma Euclid muncul sebagai Proposisi II dalam Book VII ("Elementary Number Theory") dari Elements . [ 56 ] Euclid mengajukan masalah: "Ambil dua angka bukan prima, untuk mencari bilangan pembagi terbesar". Dia menentukan "Sebuah angka [merupakan] besaran yang terdiri dari unit-unit": angka penghitung, integer positif kecuali 0. Dan "mengukur" adalah menempatkan ukuran panjang terkecil s dengan tepat ( q kali) di antara ukuran terpanjang l sampai sisa r lebih kecil dari panjang terkecil s . [ 57 ] Dalam dunia modern, sisa r = l - q*s , q sebagai hasil bagi, atau sisa r adalah "modulus", bagian sisa-integer yang tersisa setelah pembagian. [ 58 ] Supaya metode Euclid berhasil, panjang awalnya harus memenuhi dua kebutuhan: (i) panjangnya tidak 0, DAN (ii) hasil pengurangan harus "lebih", sebuah pengujian harus menjamin bahwa bilangan terkecil dari dua angka adalah hasil pengurangan dari yang terbesar (cara lain, keduanya bisa sama sehingga pengurangan menghasilkan 0). Pembuktian asli Euclid mengikutkan kebutuhan yang ketiga: kedua panjang bukanlah bilangan prima. Euclid menentukan hal ini supaya dia bisa membentuk sebuah bukti reductio ad absurdum bahwa dua pembagi dua angka adalah yang terbesar . [ 59 ] Walau algoritma Nicomachus sama dengan Euclid, bila kedua bilangan prima maka menghasilkan angka "1" untuk bilangan pembagi terbesar. Jadi untuk lebih jelasnya algoritma berikut adalah algoritma Nicomachus. Bahasa komputer untuk algoritma Euclid Hanya beberapa tipe instruksi yang dibutuhkan untuk mengeksekusi algoritma—beberapa tes logika (GOTO bersyarat), GOTO tak bersyarat, penetapan (penggantian), dan pengurangan. Sebuah lokasi disimbolkan dengan huruf besar, misalnya, S, A, dll. Kuantitas beragam (angka) dalam sebuah lokasi ditulis dengan huruf kecil dan (biasanya) dihubungkan dengan nama lokasi. Sebagai contohnya, lokasi L pada awal bisa mengandung angka l = 3009. Program yang kurang elegan (inelegan) untuk algoritma Euclid Algoritma berikut disebut sebagai versi Euclid dan Nichomachus 4-langkah-nya Knuth, tetapi bukannya menggunakan pembagi untuk menentukan sisa ia menggunakan pengurangan berturut-turut dari panjang terkecil s dari sisa panjang r sampai r kurang dari s . Deskripsi tingkat-tinggi, diperlihatkan dengan tulisan tebal, diadaptasi dari Knuth 1973:2-4: E0: [Pastikan r ≥ s .] E1: [Cari sisa] : Sampai sisa panjang r di R kurang dari panjang terkecil s pada S, kurangi angka s dalam S berulang kali dari sisa panjang r dalam R. E2: [Apakah sisa 0?] : APAKAH (i) pengukuran terakhir adalah sama dan sisa di R adalah 0 program dapat berhenti, ATAU (ii) algoritma harus terus jalan: hasil pengukuran meninggalkan sisa di R kurang dari angka pengukuran dalam S. E3: [Interchange s dan r ] : Sulitnya algoritma Euclid. Menggunakan sisa r untuk mengukur angka terkecil sebelumnya s :; L sebagai lokasi sementara. Program elegan untuk algoritma Euclid Versi algoritma Euclid berikut hanya membutuhkan 6 instruksi inti untuk melakukan 13 langkah pada solusi "inelegan"; parahnya, "inelegan" membutuhkan tipe instruksi lebih banyak. Diagram alur dari "elegan" bisa dilihat pada bagian atas artikel ini. Dalam bahasa Basic (tak terstruktur) langkahnya diberi nomor, dan instruksi LET [] = [] adalah instruksi penetapan disimbolkan dengan ←. Bagaimana cara kerja "Elegan" : Sebagai pengganti "pengulangan Euclid" luar, "Elegan" mengulang antara dua pengulangan, pengulangan A > B yang menghitung A ← A - B, dan pengualang B ≤ A yang menghitung B ← B - A. Hal ini bekerja karena, saat yang dikurang M lebih kecil pengurang S ( Selisih = pengurang - yang_di_kurang ), yang_dikurang bisa menjadi s (panjang pengukuran yang baru) dan pengurang bisa menjadi r yang baru (panjang yang akan diukur); dengan kata lain "arti" dari pengurangan dibalik. Menguji algoritma Euclid Apakah algoritma berjalan seperti yang penulis inginkan? Beberapa kasus uji cukup menentukan fungsi inti. Sumber pertama [ 60 ] menggunakan 3009 dan 884. Knuth menyarankan 40902, 24140. Kasus menarik lainnya yaitu dua angka relatif prima 14157 dan 5950. Tapi kasus pengecualian harus teridentifikasi dan diuji. Apakah "inelegan" berjalan benar saat R > S, S > R, R = S? Sama juga dengan "Elegan": B > A, A > B, A = B? (Semuanya benar). Apa yang terjadi bila salah satu bilangan nol, atau keduanya nol? ("Inelegan" terus berjalan pada kedua kasus; "elegan" terus berjalan saat A = 0.) Apa yang terjadi bila angka negatif dimasukan? Angka desimal? Bila angka masukan, misalnya domain dari fungsi yang dihitung oleh algoritma/program, mengikutkan hanya integer positif termasuk 0, maka kegagalan pada nol mengindikasikan bahwa algoritma (dan program instansiasinya ) adalah sebuah fungsi parsial bukannya fungsi total . Kesalahan yang terkenal karena eksepsi adalah kegagalan roket Ariane V . Bukti dari kebenaran program menggunakan induksi matematika : Knuth mendemonstrasikan penggunaan induksi matematika untuk versi "pengembangan" dari algoritma Euclid, dan dia mengajukan "metode umum yang digunakan untuk membuktikan validitas dari setiap algoritma." [ 61 ] Tausworthe mengajukan bahwa sebuah pengukuran dari kompleksitas dari sebuah program adalah panjang dari pembuktian kebenarannya. [ 62 ] Menghitung dan meningkatkan algoritma Euclid Elegan (kepadatan) lawan kebaikan (kecepatan) : Dengan hanya 6 instruksi dasar, "Elegan" adalah jelas pemenang dibandingkan dengan instruksi "inelegan" dengan 13 instruksi. Namun, "inelegan" lebih cepat (ia sampai pada HALT dengan langkah lebih sedikit). Analisis algoritma [ 63 ] mengindikasikan kenapa hal tersebut terjadi: "Elegan" melakukan pengujian kondisi dua kali disetiap pengulangan pengurangan, sementara "inelegan" hanya sekali. Bila algoritma (biasanya) membutuhkan banyak pengulangan, secara rata-rata lebih banyak waktu yang terbuang saat melakukan tes "B = 0?" yang hanya diperlukan saat sisa sudah dihitung. Bisakah algoritma ditingkatkan? : Bila programmer sudah menilai sebuah program "cocok" dan "efektif"—yaitu, ia menghitung fungsi yang ditujukan oleh penulisnya—maka pertanyaannya menjadi, bisakah ditingkatkan? Kepadatan dari "inelegan" bisa ditingkatkan dengan menghilangkan 5 langkah. Tapi Chaitin membuktikan bahwa memadatkan algoritma tidak bisa diotomatiskan dengan algoritma generalisasi; [ 64 ] tapi, ia bisa dilakukan secara heuristik , misalnya dengan pencarian menyeluruh (contohnya bisa ditemukan di Berang sibuk ), coba dan gagal, kecerdasan, kedalaman, penggunaan penalaran induktif , dll. Bisa diamati bahwa langkah 4, 5, dan 6 diulang pada langkah 11, 12, dan 13. Pembandingan dengan "Elegan" menyediakan petunjuk langkah-langkah tersebut dengan langkah 2 dan 3 dapat dihilangkan. Hal ini mereduksi jumlah instruksi dasar dari 13 menjadi 8, yang membuatnya "lebih elegan" dari "Elegan" dengan 9 langkah. Kecepatan "Elegan" bisa ditingkatkan dengan memindahkan tes B=0? keluar dari pengulangan. Perubahan ini memerlukan penambahan 3 instruksi (B=0?, A=0?, GOTO). Sekarang "Elegant" menghitung contoh-angka lebih cepat; untuk setiap angka pada A, B dan R, S hal ini selalu merupakan kasus yang membutuhkan analisis yang mendalam. Analisis Algoritma Sangat penting untuk mengetahui berapa banyak sumber tertentu (seperti waktu dan tempat penyimpanan) secara teoretis diperlukan untuk sebuah algoritma. Metode-metode telah dikembangkan untuk analisis algoritma untuk mendapatkan jawaban kuantitatif (estimasi); sebagai contohnya, algoritma pengurutan di atas memerlukan waktu O( n ), menggunakan notasi O besar dengan n sebagai panjang deret (yang akan diurut). Setiap saat algoritma hanya perlu mengingat dua nilai: nilai terbesar yang ditemukan, dan posisinya sekarang dideretan input. Oleh karena itu dikatakan memiliki kebutuhan ruang O(1) , jika ruang yang dibutuhkan untuk menyimpan angka masukan tidak dihitung, atau O( n ) jika dihitung. Algoritma berbeda mungkin menyelesaikan pekerjaan yang sama dengan kumpulan instruksi yang berbeda dengan waktu, ruang, atau ' usaha ' lebih sedikit atau banyak dari yang lain. Sebagai contohnya, algoritma pencairan binari biasanya mengungguli pencarian berderet secara paksa bila digunakan untuk tabel pencarian pada deret terurut. Formal lawan empiris Analisis dan kajian algoritma adalah bidang dari ilmu komputer, dan biasanya dilakukan secara abstrak tanpa menggunakan bahasa pemrograman tertentu atau implementasi. Dalam artian, analisis algoritma mirip dengan bidang matematika lainnya yang mana fokus pada properti yang mendasari algoritma dan bukan pada implementasi tertentu. Biasanya pseudokode digunakan pada analisis karena merupakan representasi paling umum dan sederhana. Namun, pada akhirnya, kebanyakan algoritma diimplementasikan di perangkat keras / lunak tertentu dan efisiensi algoritmik mereka akhirnya diuji menggunakan kode yang sebenarnya. Untuk solusi dari sebuah masalah, efisiensi dari algoritma tertentu mungkin tidak terlalu berpengaruh (kecuali n sangat besar) tetapi bagi algoritma yang dirancang untuk kecepatan interaktif, komersial, atau penggunaan ilmiah jangka panjang ia bisa saja kritikal. Meningkatkan n dari kecil ke n yang besar biasanya menunjukan ketak efisienan algoritma yang tidak berbahaya. Pengujian empiris berguna karena bisa membuka interaksi tak terduga yang memengaruhi performa. Benchmark bisa digunakan untuk membandingkan potensi kenaikan sebelum/sesudah algoritma setelah optimisasi program dilakukan. Efisiensi eksekusi Untuk menggambarkan kemungkinan potensi peningkatan bahkan pada algoritma yang sudah teruji, inovasi terbaru, berkaitan dengan algoritma FFT (banyak digunakan di bidang pemrosesan gambar), bisa menurunkan waktu pemrosesan dengan faktor sampai 1.000 untuk aplikasi seperti pencitraan medis. [ 65 ] Secara umum, peningkatan kecepatan bergantung pada properti khusus dari masalah, yang mana sangat umum pada aplikasi praktis. [ 66 ] Percepatan dengan tingkat seperti itu membolehkan perangkat komputasi yang sering menggunakan pemrosesan gambar (seperti kamera digital dan peralatan medis) menghabiskan daya yang lebih sedikit. Salah satu cara mengklasifikasikan algoritma yaitu dengan cara implementasi. Paradigma secara rancangan Cara lain mengklasifikasikan algoritma adalah dengan metodologi rancangannya atau paradigma. Ada sejumlah paradigma, tiap-tiapnya berbeda dari yang lain. Lebih lanjut, setiap kategori tersebut mengikutkan banyak tipe algoritma yang berbeda. Beberapa paradigma umum termasuk: Algoritma Monte Carlo mengembalikan jawaban yang benar dengan probabilitas-tinggi. Misalnya, RP adalah sub-klas dari algoritma ini yang berjalan dalam waktu polinomial ) Algoritma Las Vegas selalu mengembalikan jawaban yang benar, tetapi waktu prosesnya adalah hanya terikat secara probabilistik, misalnya ZPP . Masalah optimisasi Berdasarkan bidang kajian Setiap bidang sains memiliki permasalahannya sendiri dan membutuhkan algoritma yang efisien. Masalah yang berkaitan di satu bidang terkadang dipelajari bersama. Beberapa contoh yaitu algoritma pencarian , algoritma penggabungan , algoritma numerik , algoritma grafik , algoritma deret , algoritma komputasi geometri , algoritma kombinatorial , algoritmas medis , mesin belajar , kriptografi , algoritma kompresi data dan teknik penguraian . Terkadang bidang-bidang tersebut saling tumpang tindih, dan perkembangan algoritma di satu bidang bisa meningkatkan bidang lainnya yang terkadang tidak berkaitan. Sebagai contohnya, pemrograman dinamis ditemukan untuk optimisasi konsumsi sumber daya dalam industri, tetapi sekarang digunakan untuk menyelesaikan sejumlah besar masalah dalam banyak bidang. Berdasarkan kompleksitas Algoritma bisa diklasifikasikan berdasarkan jumlah waktu yang dibutuhkan untuk selesai dibandingkan dengan ukuran inputnya. Ada berbagai varietas: beberapa algoritma selesai dalam waktu linear relatif terhadap ukuran input, beberapa selesai dalam jumlah waktu yang eksponensial atau lebih buruh, dan beberapa berhenti. Sebagai tambahan, beberapa masalah bisa memiliki berbagai algoritma dengan kompleksitas yang berbeda, sementara masalah yang lain bisa saja tidak memiliki algoritma atau tidak diketahui algoritmanya yang efisien. Ada juga pemetaan dari beberapa algoritma terhadap masalah lain. Karena itu, lebih cocok untuk mengklasifikasikan masalah itu sendiri bukannya algoritma menjadi kelas-kelas yang sama berdasarkan kompleksitas dari kemungkinan algoritma terbaik baginya. Burgin (2005, p. 24) menggunakan definisi algoritma secara umum yang melonggarkan kebutuhan bersama yang keluaran dari algoritma yang menjalankan sebuah fungsi harus ditentukan setelah sejumlah langkah. Dia mendefinisikan kelas super-rekursif dari algoritma sebagai "sebuah kelas algoritma yang mana memungkinkan untuk menghitung fungsi yang tidak bisa dihitung oleh mesin Turing manapun" (Burgin 2005, p. 107). Hal ini berkaitan dekat dengan kajian dari metode hiperkomputasi . Berdasarkan tipe evaluatif Untuk menjaga keseimbangan saat mengintegrasikan mesin ke dalam masyarakat, seseorang bisa mengklasifikasikan algoritma berdasarkan tipe dari evaluasi yang mereka lakukan. Sejumlah filsuf telah berhipotesis bahwa masyarakat diuntungkan dari keragaman evaluatif seperti mereka diuntungkan keragaman jender dan tipe darah (misalnya, Dean 2012, Sober & Wilson 1998) Hertzke & McConkey 1998, dan Bellah 1985). Teknologi dapat mengancam ekosistem moral tersebut seperi spesies invasif jika ia mengganggu campuran keragaman. Wallach & Allen (2008) mengklasifikasikan algoritma pembuat-keputusan menjadi tiga tipe evaluatif: Algoritma bottom-up membuat penilaian tidak terprediksi bagi pemrogram (misalnya, perangkat lunak yang berevolusi). Yang lainnya (top-down) dibagi menjadi deontologikal (yang dapat bergantung pada implementasi aturan pemrograman) lawan consequensialis (yang mengandalkan pada memaksimalkan perkiraan pemrograman). Sebagai contohnya, sebuah kalkulator standar termasuk deontologikal, sementara mesin pembelajaran untuk perdagangan saham termasuk consequensialis. Santos-Lang mengganti nama deontologikal dan consequensialis menjadi kelas "institusional" dan "negosiator" dengan tujuan untuk menghindari implikasi bahwa semua teori-teori etika deontologikal dan consequensialis bisa diimplementasikan sebagai algoritma, dan membagi kelas bottom-up menjadi " pengganggu " (algoritma yang tidak terprediksi karena menggunakan generator pengacakan) lawan " relasional " (algoritma yang tidak terprediksi karena efek jaringan). Seorang mutator dalam komputasi evolusioner bisa menjadi contoh dari pengganggu, sementara kelas 3 atau 4 dari otomata sellular adalah contoh dari mesin relasional. Santos-Lang mencatat bahwa algoritma terkadang memiliki subkomponen dari tipe lainnya. Sebagai contohnya, negosiator perdagangan saham bisa mengimplementasikan sebuah algoritma genetik, dan memiliki mutator pengganggu, dan mutator bisa memiliki subkomponen institusional dan relasional, semua komputasi adalah relasional pada tingkat di jajaran kimiawi (Santos-Lang 2014). Algoritma berkelanjutan Kata sifat "berkelanjutan" bila diterapkan pada kata "algoritma" bisa berarti: Sebuah algoritma beroperasi pada data yang merepresentasikan kuantitas yang berkelanjutan, walaupun data tersebut direpresentasikan oleh pendekatan diskrit—seperti algoritma yang dipelajari dalam analisis numerik ; atau Sebuah algoritma dalam bentuk dari persamaan diferensial yang beroperasi secara berkelanjutan terhadap data, berjalan dalam sebuah komputer analog . Algoritma biasanya tidak dipatenkan. Di Amerika Serikat, sebuah klaim yang terdiri hanya dari manipulasi sederhana dari konsep abstrak, angka, atau sinyal tidak berarti suatu "process" (SPTO 2006), dan oleh karena itu algoritma tidak bisa dipatenkan (sebagaimana dalam Gottschalk v. Benson ). Namun, penerapan praktis dari algoritma terkadang dipatenkan. Sebagai contohnya, dalam Diamond v. Diehr , aplikasi dari algoritma umpan-balik sederhana untuk membantu dalam menyembuhkan karet sintetis dianggap dapat dipatenkan. Mematenkan perangkat lunak sangat kontroversial, dan ada paten yang mengikutkan algoritma yang sangat dikritisi, terutama algoritma kompresi data , seperti Format Grafiknya Unisys . Sebagai tambahan, beberapa algoritma kriptografi memiliki batasan ekspor (lihat ekspor dari kriptografi ). Kata "Algoritma" , atau " Algorisma " pada versi penulisan lain, datang dari nama al-Khwarizmi . dieja dalam Arab klasik sebagai Al-Khwarithmi. Al-khwarizmi ( bahasa Persia : خوارزمي code: ar is deprecated , 780-850) adalah matematikawan , ahli astronomi , ahli geografi dari Persia dan sarjana Baitul Hikmah di Baghdad , yang arti namanya "penduduk asli Khwarezmia " , sebuah kota yang merupakan bagian dari Wilayah Iran pada masanya dan sekarang Uzbekistan . [ 72 ] [ 73 ] Sekitar tahun 825, dia menulis risalah dalam bahasa Arab, yang diterjemahkan dalam Latin pada abad ke-12 dengan judul Algoritmi de numero Indorum . Judul ini artinya "Algoritmi pada bilangan India", di mana "Algoritmi" adalah pelatinan penerjemah dari nama Al-Khwarizmi. [ 74 ] Al-Khwarizmi dulunya adalah matematikawan yang paling banyak dibaca di Eropa pada akhir Abad Pertengahan, pada umum lewat bukunya yang lain, Aljabar . [ 75 ] Pada akhir abad pertengahan, algorismus , perubahan dari namanya, berarti "sistem bilangan desimal" yang masih merupakan arti dari kata Inggris modern algorism . Pada abad ke-17 Prancis kata tersebut berubah, tetapi tidak maknanya, menjadi algorithme . Inggris mengadopsi Prancis setelahnya, tetapi tidak pada akhir abad ke-19 lah "Algorithm" mengambil makna dari kata Inggris masa sekarang. [ 76 ] Etimologi alternatif mengklaim asal mulanya dari istilah algebra (aljabar) dari makna abad pertengahan "aritmetika Arab" dan arithmos istilah Yunani untuk angka (yang secara harfiah berarti "bilangan Arab" atau "perhitungan Arab"). Karya algoritma Al-Kharizmi bukan berbentuk seperti pada masa modern sekarang tetapi sebagai tipe dari pengulangan kalkulus (di sini disebutkan bahwa karya fundamentalnya yang dikenal sebagai algebra pada awalnya berjudul " Buku Ringkasan tentang Kalkulasi dengan Penyempurnaan dan Pengimbangan " menjelaskan tipe-tipe dari pengulangan perhitungan dan persamaan kuadrat ). Dalam makna tersebut, algoritima dikenal di Eropa jauh sebelum Al-Kharizmi. Algoritma paling tua yang dikenal sekarang adalah Algoritma Euklid (lihat juga Pengembangan algoritma Euklid ). Sebelum ditemukan istilah algorithm orang Yunani menyebutnya anthyphairesis secara harfiah berarti anti-substraksi atau substraksi timbal-balik (untuk bacaan lebih lanjut disini dan ini Diarsipkan 2013-11-03 di Wayback Machine . . Algoritma dikenal oleh orang Yunani berabad sebelum [ 77 ] Euclid. Bukannya kata algebra orang Yunani menggunakan istilah arithmetica (ἀριθμητική, yaitu dalam karya Diophantus yang dikenal " bapak dari Aljabar " - lihat juga artikel Wikipedia persamaan Diophantine dan Eudoxos ). Sejarah: Perkembangan dari kata "algoritma" Bukti terawal tentang algoritma ditemukan dalam matematika Babilonia di Mesopotamia kuno (saat ini merupakan bagian dari Irak ). Sebuah tablet tanah liat Sumeria yang ditemukan di Shuruppak dekat Baghdad dan berasal dari sekitar tahun 2500 SM menjelaskan algoritma divisi yang paling awal. [ 78 ] Selama dinasti Hammurabi sekitar 1800-1600 SM, tablet tanah liat Babilonia menjabarkan algoritma untuk rumus-rumus komputasi. [ 79 ] Algoritma juga digunakan dalam astronomi Babilonia. Tablet tanah liat Babilonia menguraikan dan menggunakan prosedur algoritmik untuk menghitung waktu dan tempat peristiwa astronomi yang signifikan. [ 80 ] Algoritma untuk aritmetika juga ditemukan dalam matematika Mesir kuno, yang terdapat pada Papirus Matematika Rhind yang berasar dari sekitar tahun 1550 SM. [ 81 ] Algoritma kemudian digunakan dalam matematika Helenistik kuno. Dua contohnya adalah Tapis Eratosthenes , yang dijelaskan dalam Pengenalan Aritmetika oleh Nicomachus , [ 82 ] [ 83 ] : Ch 9.2 dan Algoritma Euklides , yang pertama kali dipaparkan dalam Euclid's Elements (sekitar 300 SM). [ 83 ] : Ch 9.1 Simbol diskrit dan yang dapat dibedakan Penanda-penghitung : Untuk mencatat hewan gembalaan, kumpulan biji dan uang mereka orang dahulu menggunakan penghitung: akumulasi batu atau tanda yang ditoreh pada tongkat, atau membuat simbol diskrit di kerang. Sampai orang Babilonia dan Mesir menggunakan tanda dan simbol, pada akhirnya bilangan Roma dan abakus berkembang (Dilson, p. 16-41). Penanda penghitung muncul dalam sistem bilangan operan aritmetika digunakan dalam mesin Turing dan komputasi mesin Post-Turing . Manipulasi simbol sebagai "penampung" bilangan: aljabar Karya dari Geometer Yunani kuno ( algoritma Euklid ), matematikawan India Brahmagupta , dan matematikawan Persia Al-Khwarizmi (yang darinya isitlah " algorism " dan "algoritma" diturunkan), dan matematikawan Eropa Barat memuncak dalam notasi Leibniz dari rasiosinator kalkulus (sekitar 1680-an): Abad yang baik dan setengah lebih maju dari masanya, Leibniz mengajukan logika aljabar, sebuah aljabar yang akan menentukan aturan-aturan untuk memanipulasi konsep logika dengan cara yang aljabar biasa menentukan aturan untuk manipulasi angka. [ 84 ] Rancangan mekanis dengan tingkat diskrit Jam : Bolter memuji penemuan jam gaya-berat sebagai "Kunci penemuan dari Eropa pada Abad Pertengahan ", khususnya pada ambang pelarian [ 85 ] yang menyediakan kita dengan tik dan tak dari jam mekanis. "Mesin otomatis yang akurat" [ 86 ] mengarah langsung pada " otomata mekanis" dimulai pada abad ke-13 dan terakhir pada "mesin komputasi" -- motor berbeda dan motor analitik dari Charles Babbage dan bangsawan Ada Lovelace , pertengahan abad ke-19. [ 87 ] Lovelace dikreditkan sebagai yang pertama menciptakan algoritma yang ditujukan untuk diproses di komputer—motor analitis Babbage, perangkat pertama yang dianggap komputer Turing-sempurna sebenarnya bukan hanya sebuah kalkulator —dan terkadang dikenal "programmer pertama dalam sejarah", walaupun implementasi penuh dari perangkat Babbage kedua tidak terealisasi sampai beberapa dekade setelah masanya. Mesin logika 1870 - Stanley Jevons "sempoa logika" dan "mesin logika" : Masalah teknisnya adalah untuk mereduksi persamaan boolean bila ditampilkan dalam sebuah bentuk yang pada masa sekarang dikenal sebagai pemetaan Karnaugh . Jevons (1880) pertama menjelaskan "sempoa" sederhana dari "potongan kayu dilengkapi dengan penyemat, dibuat supaya bagian atau kelas kombinasi logika manapun dapat dipilih secara mekanis ... Baru-baru ini Saya telah mereduksi sistem menjadi bentuk yang secara sempurna mekanis, dan membuatnya mewujudkan keseluruhan proses inferensi tak langsung dalam apa yang disebut sebuah Mesin Logika " Mesinnya dilengkapi dengan "beberapa tangkai kayu yang bisa dipindahkan" dan "di bawah ada 21 kunci seperti pada piano [dll] ...". Dengan mesin ini dia dapat menganalis sebuah " silogisme atau argumen logika sederhana apapun". [ 88 ] Mesin tenun Jacquard, kartu berlobangnya Hollerith, telegraf dan telepon -- penyiaran elektromekanis : Bell dan Newell (1971) mengindikasikan bahwa mesin tenun Jacquard (1801), pelopor dari kartu Hollerith (kartu berlobang, 1887), dan "teknologi alih telepon" adalah akar dari sebuah pohon yang mengarah pada perkembangan dari komputer pertama. [ 89 ] Pada pertengahan abad ke-19 telegraf , pelopor dari telepon, digunakan diseluruh dunia, pengkodean diskrit dan pembedaan huruf sebagai "titik dan strip". Pada akhir abad ke-19 pita telegraf (sekitar 1870-an) digunakan, sebagaimana juga kartu Hollerith pada sensus Amerika 1890. Kemudian muncullah teleprinter (sekitar 1910-an) dengan kerta-berlobang menggunakan kode Baudot di pita. Jaringan alih-telepon dari penyiaran elektromekanis (ditemukan 1835) adalah karya dair George Stibitz (1937), penemu dari perangkat penghitungan digital. Saat bekerja di laboratorium Bell, dia mengamati "beratnya" penggunaan kalkulator mekanis dengan geligi. "Dia pulang ke rumah pada suatu malam 1937 berniat untuk menguji idenya ... Saat mengatik selesai, Stibitz telah membangun perangkat hitung digital". [ 90 ] Davis (2000) mengamati pentingnya penyiaran elektromekanis (dengan "keadaan binari"-nya buka dan tutup ): Matematika selama abad 19 sampai pertengahan abad 20 Simbol dan aturan : Dengan cepat berkembangnya matematika dari George Boole (1847, 1854), Gottlob Frege (1897), dan Giuseppe Peano (1888-1889) mereduksi aritmetika menjadi serangkaian simbol dimanipulasi oleh aturan-aturan. The Principles of arithmetic, presented by a new method -nya Peano (1888) adalah "usaha pertama mengaksiomakan matematika dalam sebuah bahasa simbolik". [ 92 ] Tapi Heijenoort memberi pujian pada Frege (1879): Frege "merupakan karya tulis paling penting mengenai logika. ... yang mana kita lihat sebuah "'bahasa formula', yaitu sebuah lingua characterica , sebuah bahasa ditulis dengan simbol-simbol khusus, "untuk berpikir murni", yaiut, bebas dari hiasan retorikal ... dibangun dari simbol-simbol tertentu yang dimanipulasi menurut aturan-aturan terbatas". [ 93 ] Karya dari Frege lebih lanjut disederhanakan dan diperkuat oleh Alfred North Whitehead dan Bertrand Russell dalam Principia Mathematical (1910-1913). Paradoks : Pada masa yang sama sejumlah paradoks yang mengganggu muncul dalam literatur, pada khususnya paradoks Burali-Forti (1987), paradoks Russell (1902-03), dan Paradoks Richard . [ 94 ] Hasilnya mengarah ke makalah Kurt Godel (1931) -- dia secara khusus merujuk paradoks pembohong—yang mereduksi aturan dari rekursi pada angka. Penghitungan Efektif : Dalam usaha untuk menyelesaikan permasalahan keputusan yang didefinisikan oleh Hilbert tahun 1928, matematikawan pertama mendefinisikan apa arti dari "metode efektif" atau "kalkulasi efektif" (misalnya, sebuah kalkulasi yang akan sukses). Dalam waktu yang cepat hal berikut muncul: kalkulus-λ oleh Alonzo Church , Stephen Kleene , dan J.B. Rosser [ 95 ] definisi dari "rekursi umum" yang benar-benar diasah dari karya Godel berdasarkan saran dari Jacquard Herbrand (cf. kuliah Godel di Princeton tahun 1934) dan penyederhaan selanjutnya oleh Kleene. [ 96 ] Church membuktikan [ 97 ] bahwa masalah keputusan tidak terpecahkan, definisi Emil Post tentang penghitungan efektif yaitu sebagai pekerja yang tanpa berpikir mengikuti suatu daftar instruksi untuk bergerak ke kiri atau kanan lewat sederetan ruangan dan bersamaan dengan itu bisa menandai atau menghapus kertas atau mengamati kertas dan membuat pilihan ya-tidak tentang instruksi selanjutnya. [ 98 ] Pembuktian Alan Turing bahwa masalah keputusan tidak terpecahkan dengan menggunakan "sebuah mesin [otomatis]"-nya [ 99 ] dengan efek yang mirip dengan "formulasi"-nya Post, definisi J. Barkley Rosser tentang "metode efektif" dalam makna "sebuah mesin". [ 100 ] Proposal S. C. Kleene dari pelopor " Tesis Church " yang disebutnya "Thesis I", [ 101 ] dan beberapa tahun kemudian Kleene menamakan tesisnya "Tesis Church" [ 102 ] dan mengajukan "Tesis Turing". [ 103 ] Emil Post (1936) dan Alan Turing (1936-37, 1939) Berikut adalah kebetulan yang luar biasa dari dua orang yang tidak saling mengenal tetapi mendeskripsikan sebuah proses orang-sebagai-komputer mengerjakan perhitungan—dan mereka menghasilkan definisi yang mirip. Emil Post (1936) mendeskripsikan aksi dari sebuah "komputer" (manusia) sebagai berikut: Simbol ruangnya yaitu Turing—model dari komputasinya sekarang dikenal dengan mesin Turing —memulai, sebagaimana Post, dengan analisis dari komputer manusia yang ia sederhanakan menjadi sekumpulan gerakan dasar sederhana dan "keadaan pikiran". Tapi dia terus maju selangkah ke depan dan membuat sebuah mesin sebagai model dari komputasi angka. [ 107 ] Reduksi Turing menghasilkan hal berikut: "Bisa saja beberapa dari perubahan tersebut menyebabkan perubahan keadaan pikiran. Operasi tunggal paling umum oleh karena itu harus diambil jadi salah satu hal berikut: Beberapa tahun kemudian, Turing mengembangkan analisisnya (tesis, secara definisi) dengan ekspresi kuat berikut: Walau sangat mudah menangkap ide ini, namun ia membutuhkan beberapa definisi matematikan terbatas yang bisa diekspresikan . . . [dia mendiskusikan sejarah dari definisi seperti di atas dengan menghormati Godel, Herbrand, Kleen, Church, Turing dan Post] ... Kita mungkin gunakan pernyataan tersebut secara harfiah, memahami murni dengan proses mekanis yang mana dapat dilakukan oleh sebuah mesin. Memungkinkan untuk memberikan deskripsi matematis, dalam beberapa bentuk normal, dari struktur mesin tersebut. Perkembangan dari ide ini mengarah pada definisi penulis dari sebuah fungsi yang dapat dihitung, dan untuk mengidentifikasi komputibilitas † dengan penghitungan yang efektif . . . . J. B. Rosser (1939) dan S. C. Kleene (1943) J. Barkley Rosser mendefinisikan 'metode [matematis] efektif' dengan cara berikut (kemiringan ditambahkan): Catatan kaki Rosser #5 merujuk karya dari (1) Church dan Kleene dan definisi dari definabiliti-λ, secara khusus Church menggunakannya dalam An Unsolvable Problem of Elementary Number Theory -nya (1936); (2) Herbrand dan Godel dan penggunaan rekursi mereka terutama Godel menggunakannya dalam makalah terkenalnya On Formally Undecidable Propositions of Principia Mathematica and Related Systems I (1931); dan (3) Post (1936) dan Turing (1936-7) dalam model mekanisme komputasi mereka. Stephen C. Kleene didefinisikan sebagai "Thesis I"-nya yang terkenal yang dikenal sebagai tesis Church-Turing . Tapi dia melakukan hal tersebut dalam konteks berikut (penebalan dari aslinya): Sejarah setelah 1950 Sejumlah usaha telah diarahkan untuk memperbaiki lebih lanjut definisi dari "algoritma", dan aktivitas tersebut masih terus berjalan karena isu-isu yang mengelilinginya, terutama, fondasi matematika (khususnya tesis Church-Turing ) dan filsafat pikiran (khususnya argumen menyangkut kecerdasan buatan ). Lebih lanjut, lihat karakterisasi algoritma . Pemerintahan algoritmik Rekayasa algoritma Komposisi algoritmik Sintesis algoritmik
📥 下载地址(文章中间)
装机神器,快速安装一切系统。
Algoritma trading Sampah masuk, sampah keluar Pendahuluan untuk Algoritma Daftar topik algoritma umum Daftar publikasi penting dalam ilmu komputer teoretis - Algoritma Numerical Mathematics Consortium Teori komputasi Teori komputabilitas Teori kompleksitas Komputasi Teori komputabilitas Teori kompleksitas Komputasi ↑ Blair, Ann, Duguid, Paul, Goeing, Anja-Silvia and Grafton, Anthony. Information: A Historical Companion, Princeton: Princeton University Press, 2021. p. 247 ↑ David A. Grossman, Ophir Frieder, Information Retrieval: Algorithms and Heuristics , 2nd edition, 2004, ISBN 1402030045 ↑ "Any classical mathematical algorithm, for example, can be described in a finite number of English words" (Rogers 1987:2). ↑ Well defined with respect to the agent that executes the algorithm: "There is a computing agent, usually human, which can react to the instructions and carry out the computations" (Rogers 1987:2). ↑ "an algorithm is a procedure for computing a function (with respect to some chosen notation for integers) ... this limitation (to numerical functions) results in no loss of generality", (Rogers 1987:1). ↑ "An algorithm has zero or more inputs, i.e., quantities which are given to it initially before the algorithm begins" (Knuth 1973:5). ↑ "A procedure which has all the characteristics of an algorithm except that it possibly lacks finiteness may be called a 'computational method ' " (Knuth 1973:5). ↑ "An algorithm has one or more outputs, i.e. quantities which have a specified relation to the inputs" (Knuth 1973:5). ↑ Whether or not a process with random interior processes (not including the input) is an algorithm is debatable. Rogers opines that: "a computation is carried out in a discrete stepwise fashion, without the use of continuous methods or analogue devices ... carried forward deterministically, without resort to random methods or devices, e.g., dice" (Rogers 1987:2). ↑ Cooke, Roger L. (2005). The History of Mathematics: A Brief Course . John Wiley & Sons. ISBN 978-1-118-46029-0 . ↑ "Al-Khwarizmi biography" . www-history.mcs.st-andrews.ac.uk . Diarsipkan dari versi aslinya tanggal August 2, 2019 . Diakses tanggal May 3, 2017 . ↑ "Etymology of algorithm" . Chambers Dictionary . Diarsipkan dari versi aslinya tanggal March 31, 2019 . Diakses tanggal December 13, 2016 . ↑ Hogendijk, Jan P. (1998). "al-Khwarzimi" . Pythagoras . 38 (2): 4– 5. Diarsipkan dari asli tanggal April 12, 2009. ↑ Oaks, Jeffrey A. "Was al-Khwarizmi an applied algebraist?" . University of Indianapolis . Diarsipkan dari asli tanggal Juli 18, 2011 . Diakses tanggal Mei 30, 2008 . ↑ Brezina, Corona (2006). Al-Khwarizmi: The Inventor Of Algebra . The Rosen Publishing Group. ISBN 978-1-4042-0513-0 . ↑ Foremost mathematical texts in history Diarsipkan June 9, 2011, di Wayback Machine . , according to Carl B. Boyer . ↑ "algorismic" , The Free Dictionary , diarsipkan dari versi aslinya tanggal December 21, 2019 , diakses tanggal 2019-11-14 ↑ Oxford English Dictionary , Third Edition, 2012 s.v. ↑ Mehri, Bahman (2017). "From Al-Khwarizmi to Algorithm". Olympiads in Informatics . 11 (2): 71– 74. doi : 10.15388/ioi.2017.special.11 . ↑ Sriram, M. S. (2005). "Algorithms in Indian Mathematics" . Dalam Emch, Gerard G.; Sridharan, R.; Srinivas, M. D. (ed.). Contributions to the History of Indian Mathematics (dalam bahasa Inggris). Springer. hlm. 153. ISBN 978-93-86279-25-5 . ↑ "Abu Jafar Muhammad ibn Musa al-Khwarizmi" . members.peak.org . Diarsipkan dari versi aslinya tanggal August 21, 2019 . Diakses tanggal 2019-11-14 . ↑ Kleene 1943 in Davis 1965:274 ↑ Rosser 1939 in Davis 1965:225 ↑ Stone secara sederhana membutuhkan "harus berhenti dalam sejumlah langkah" (Stone 1973:7-8). ↑ Boolos and Jeffrey 1974, 1999:19 ↑ cf Stone 1972:5 ↑ Knuth 1973:7 menyatakan: "Pada praktiknya kita tidak hanya menginginkan algoritma, kita menginginkan algoritam yang baik ... salah satu kriteria dari kebaikannya adalah lama waktu yang digunakan untuk menjalankan algoritma ... kriteria lainnya adalah kemampuan adaptasi dari algoritma ke komputer, kesederhanaan dan elegan, dll." ↑ cf Stone 1973:6 ↑ Stone 1973:7-8 menyatakan bahwa harus ada, "... sebuah prosedur yang robot [yaitu komputer] bisa ikuti supaya dapat menentukan secara tepat bagaimana mengikuti instruksi tersebut." Stone menambahkan keterbatasan dari proses, dan kepastian (tidak memiliki kerancuan pada instruksi) pada definisi tersebut. ↑ Knuth, loc. cit ↑ Minsky 1967:105 ↑ Gurevich 2000:1, 3 ↑ Sipser 2006:157 ↑ Chaitin 2005:32 ↑ Rogers 1987:1-2 ↑ Dalam esainya "Calculations by Man and Machine: Conceptual Analysis" Seig 2002:390 memuji perbedaan ini oleh Robin Gandy, cf Wilfred Seig, dll., 2002 Reflections on the foundations of mathematics: Essays in honor of Solomon Feferman , Association for Symbolic Logic, A. K Peters Ltd, Natick, MA. ↑ cf gandy 1980:126, robin gandy church's thesis and principles for mechanisms appearing on pp. 123–148 in j. barwise et al. 1980 the kleene symposium , north-holland publishing company. ↑ Sebuah "robot": "Sebuah komputer adalah sebuah robot yang melakukan setiap tugas yang dapat dijelaskan sebagai urutan dari instruksi." cf Stone 1972:3 ↑ "abacus"-nya Lambek adalah "sejumlah lokasi tak terbatas yang bisa dihitung (lubang, kabel, dll.) berikut dengan persediaan penghitung yang tak terbatas (kerikil, remah roti, dll). Lokasinya bisa dibedakan, penghitungnya tidak". Lubangnya memiliki kapasitas tak terbatas, dan digerakan oleh agen yang memahami dan mampu menjalankan sejumlah instruksi" (Lambek 1961:295). Lambek mengacu Melzak yang mendefinisikan mesin-Q nya sebagai "sejumlah lokasi yang besar tanpa batas ... persediaan penghitung yang tanpa batas yang terdistribusi di antara lokasi-lokasi tersebut, sebuah program, dan sebuah operator yang tujuan satu-satunya yaitu menjalankan program." (Melzak 1961:283). B-B-J (loc. cit.) menambahkan syarat bahwa lubang tersebut "mampu menyimpan sejumlah batu" (p. 46). Melzak dan Lambek muncul di The Canadian Mathematical Bulletin , vol. 4, no. 3, September 1961. ↑ Jika tidak ada kebingungan yang dihasilkan, kata "penghitung" bisa dihiraukan, dan sebuah lokasi bisa dikatakan mengandung sebuah "angka". ↑ "Kita mengatakan bahwa instruksi adalah efektif bila ada sebuah prosedur yang robot dapat ikuti supaya dapat menentukan secara tepat bagaimana mematuhi instruksi." (Stone 1972:6) ↑ cf Minsky 1967: Chapter 11 "Computer models" and Chapter 14 "Very Simple Bases for Computability" pp. 255–281 in particular ↑ cf Knuth 1973:3. ↑ Tapi selalu diikuti oleh IF-THEN untuk menghindari pengurangan yang tidak sesuai. ↑ Namun, beberapa instruksi penetapan berbeda (misalnya, DECREMENT, INCREMENT, dan ZERO/CLEAR/EMPTY untuk mesin Minsky) juga dibutuhkan untuk kekomplitan-Turing; spesifikasi lengkapnya tergantung kepada perancang. GOTO tak bersyarat cukup mudah; ia dapat dibentuk dengan menginisialisasi suatu lokasi tertentu dengan nol, misalnya, instruksi "Z ← 0"; oleh karena itu instruksi IF Z=0 THEN GOTO xxx adalah tak bersyarat. ↑ Strone 1972:5. Metode untuk mendapatkan akar tidaklah biasa: lihat Metode untuk menghitung akar kuadrat . ↑ Leeuwen, Jan (1990). Handbook of Theoretical Computer Science: Algorithms and complexity. Volume A . Elsevier. hlm. 85. ISBN 978-0-444-88071-0 . ↑ John G. Kemeny and Thomas E. Kurtz 1985 Back to Basic: The History, Corruption, and Future of the Language , Addison-Wesley Publishing Company, Inc. Reading, MA, ISBN 0-201-13433-0 . ↑ Tausworthe 1977:101 ↑ Tausworthe 1977:142 ↑ Knuth 1973 bagian 1.2.1, dikembangkan oleh Tausworthe 1977 di halaman 100ff dan Bab 9.1 ↑ cf Tausworthe 1977 ↑ Heath 1908:300; Hawking's Dover 2005 edisi diambil dari Heath. ↑ "'Biarkan CD, mengukur BF, meninggalkan FA kurang darinya.' Hal ini merupakan singkatan cerdik untuk mengatakan, ukur pada BA panjang yang sama dengan CD sampai titik F sehingga sisa panjang FA kurang dari CD; dengan kata lain, misalkan BF adalah yang kelipatan terbesar dari CD yang terdapat dalam BA" (Heath 1908:297) ↑ Untuk percobaan moden menggunakan pembagian dalam algoritma lihat Hardy dan Wright 1979:180, Knuth 1973:2 (Volume 1), ditambah diskusi tentang algoritma Euclid dalam Knuth 1969:293-297 (Volume 2). ↑ Euclid mengungkapkan pertanyaan ini dalam Proposisi 1 nya. ↑ "Euclid's Elements, Book VII, Proposition 2" . Aleph0.clarku.edu . Diakses tanggal May 20, 2012 . ↑ Knuth 1973:13-18. Dia memuji "formulasi pembuktian-algoritma dalam makan asersi dan induksi" kepada R. W. Floyd, Peter Naur, C. A. R. Hoare, H. H. Goldstine dan J. von Neumann. Tausworth 1977 meminjam contoh Euclid Knuth dan mengembangkan metode Knuth di bab 9.1 dari Formal Proofs (pages 288–298). ↑ Tausworthe 1997:294 ↑ cf Knuth 1973:7 (Vol. I), and his more-detailed analyses on pp. 1969:294-313 (Vol II). ↑ Kesalahan terjadi saat sebuah algoritma mencoba memadatkan dirinya sendiri. Keberhasilan akan memecahkan permasalahan perhentian . ↑ Gillian Conahan (January 2013). "Better Math Makes Faster Data Networks" . discovermagazine.com. ↑ Haitham Hassanieh, Piotr Indyk, Dina Katabi, and Eric Price , " ACM-SIAM Symposium On Discrete Algorithms (SODA) Diarsipkan 2013-07-04 di Wayback Machine . , Kyoto, January 2012. Lihat juga sFFT Web Page . ↑ Kowalski 1979 ↑ Carroll, Sue; Daughtrey, Taz (July 4, 2007). Fundamental Concepts for the Software Quality Engineer . American Society for Quality. hlm. 282 et seq. ISBN 978-0-87389-720-4 . ↑ Misalnya, volume dari suatu politop kompleks (dijelaskan menggunakan sebuah keanggotaan oracle) dapat diperkirakan sampai keakuratan yang tinggi dengan mengacak algoritma waktu polinomial, bukan dengan deterministik; lihat Dyer, Martin; Frieze, Alan; Kannan, Ravi (January 1991), "A Random Polynomial-time Algorithm for Approximating the Volume of Convex Bodies", J. ACM , 38 (1), New York, NY, USA: ACM: 1– 17, doi : 10.1145/102782.102783 . ↑ George B. Dantzig and Mukund N. Thapa. 2003. Linear Programming 2: Theory and Extensions . Springer-Verlag. ↑ Tsypkin (1971). Adaptation and learning in automatic systems . Academic Press. hlm. 54. ISBN 978-0-08-095582-7 . ↑ Hogendijk, Jan P. (1998). "al-Khwarzimi" . Pythagoras . 38 (2): 4– 5. ISSN 0033–4766 . Diarsipkan dari asli tanggal 2008-03-19 . Diakses tanggal 2014-08-28 . {{ cite journal }} : ; ; | ref=harv tidak valid ↑ Oaks, Jeffrey A. "Was al-Khwarizmi an applied algebraist?" . University of Indianapolis . Diarsipkan dari asli tanggal 2010-11-15 . Diakses tanggal 2008-05-30 . {{ cite web }} : ↑ Brezina, Corona (2006). Al-Khwarizmi: The Inventor Of Algebra . The Rosen Publishing Group. ISBN 978-1-4042-0513-0 . ↑ Foremost mathematical texts in history , according to Carl B. Boyer . ↑ Etymology of algorithm at Dictionary.Reference.com ↑ Becker O (1933). "Eudoxus-Studien I. Eine voreuklidische Proportionslehre und ihre Spuren bei Aristoteles und Euklid". Quellen und Studien zur Geschichte der Mathematik B 2: 311–333. ↑ Chabert, Jean-Luc (2012). A History of Algorithms: From the Pebble to the Microchip . Springer Science & Business Media. hlm. 7– 8. ISBN 9783642181924 . ↑ Knuth, Donald E. (1972). "Ancient Babylonian Algorithms" (PDF) . Commun. ACM . 15 (7): 671– 677. doi : 10.1145/361454.361514 . ISSN 0001-0782 . S2CID 7829945 . Diarsipkan dari asli (PDF) tanggal 2012-12-24. ↑ Aaboe, Asger (2001), Episodes from the Early History of Astronomy , New York: Springer, hlm. 40– 62, ISBN 978-0-387-95136-2 ↑ Kesalahan pengutipan: Tanda <ref> tidak sah; tidak ditemukan teks untuk ref bernama "Springer Science & Business Media2" ↑ Ast, Courtney. "Eratosthenes" . Wichita State University: Department of Mathematics and Statistics. Diarsipkan dari versi aslinya tanggal February 27, 2015 . Diakses tanggal February 27, 2015 . 1 2 Kesalahan pengutipan: Tanda <ref> tidak sah; tidak ditemukan teks untuk ref bernama "Cooke20052" ↑ Davis 2000:18 ↑ Bolter 1984:24 ↑ Bolder 1984:26 ↑ Bolter 1984:33–34, 204–206. ↑ All quotes from W. Stanley Jevons 1880 Elementary Lessons in Logic: Deductive and Inductive , Macmillan and Co., London and New York. Republished as a googlebook; cf Jevons 1880:199–201. Louis Couturat 1914 the Algebra of Logic , The Open Court Publishing Company, Chicago and London. Republished as a googlebook; cf Couturat 1914:75–76 gives a few more details; interestingly he compares this to a typewriter as well as a piano. Jevons states that the account is to be found at Jan . 20, 1870 The Proceedings of the Royal Society . ↑ Bell and Newell diagram 1971:39, cf. Davis 2000 ↑ Melina Hill, Valley News Correspondent, A Tinkerer Gets a Place in History , Valley News West Lebanon NH, Thursday March 31, 1983, page 13. Melina Hill, Valley News Correspondent, A Tinkerer Gets a Place in History , Valley News West Lebanon NH, Thursday March 31, 1983, page 13. ↑ Davis 2000:14 ↑ van Heijenoort 1967:81ff ↑ van Heijenoort's commentary on Frege's Begriffsschrift, a formula language, modeled upon that of arithmetic, for pure thought in van Heijenoort 1967:1 ↑ Dixon 1906, cf. Kleene 1952:36–40 ↑ cf. footnote in Alonzo Church 1936a in Davis 1965:90 and 1936b in Davis 1965:110 ↑ Kleene 1935–6 in Davis 1965:237ff, Kleene 1943 in Davis 1965:255ff ↑ Church 1936 in Davis 1965:88ff ↑ cf. "Formulation I", Post 1936 in Davis 1965:289–290 ↑ Turing 1936–7 in Davis 1965:116ff ↑ Rosser 1939 in Davis 1965:226 ↑ Kleene 1943 in Davis 1965:273–274 ↑ Kleene 1952:300, 317 ↑ Kleene 1952:376 ↑ Turing 1936–7 in Davis 1965:289–290 ↑ Turing 1936 in Davis 1965, Turing 1939 in Davis 1965:160 ↑ Hodges, p. 96 ↑ Turing 1936–7:116 1 2 Turing 1936–7 in Davis 1965:136 ↑ Turing 1939 in Davis 1965:160 Bacaan lanjutan Axt, P. (1959) On a Subrecursive Hierarchy and Primitive Recursive Degrees, Transactions of the American Mathematical Society 92, pp. 85–105 Bell, C. Gordon and Newell, Allen (1971), Computer Structures: Readings and Examples , McGraw-Hill Book Company, New York. ISBN 0-07-004357-4 . Bellah, Robert Neelly (1985). Habits of the Heart: Individualism and Commitment in American Life . Berkeley: University of California Press. ISBN 978-0-520-25419-0 . {{ cite book }} : | ref=harv tidak valid Blass, Andreas ; Gurevich, Yuri (2003). "Algorithms: A Quest for Absolute Definitions" (PDF) . Bulletin of European Association for Theoretical Computer Science . 81 . Includes an excellent bibliography of 56 references. Boolos, George ; Jeffrey, Richard (1974, 1999). Computability and Logic (Edisi 4th). Cambridge University Press, London. ISBN 0-521-20402-X . {{ cite book }} : | ref=harv tidak valid ; Periksa nilai tanggal dalam: | year= Pemeliharaan CS1: Tahun ( link ) : cf. Chapter 3 Turing machines where they discuss "certain enumerable sets not effectively (mechanically) enumerable". Burgin, Mark (2004). Super-Recursive Algorithms . Springer. ISBN 978-0-387-95569-8 . Campagnolo, M.L., Moore, C. , and Costa, J.F. (2000) An analog characterization of the subrecursive functions. In Proc. of the 4th Conference on Real Numbers and Computers , Odense University, pp. 91–109 Church, Alonzo (1936a). "An Unsolvable Problem of Elementary Number Theory". The American Journal of Mathematics . 58 (2): 345– 363. doi : 10.2307/2371045 . JSTOR 2371045 . Reprinted in The Undecidable , p. 89ff. The first expression of "Church's Thesis". See in particular page 100 ( The Undecidable ) where he defines the notion of "effective calculability" in terms of "an algorithm", and he uses the word "terminates", etc. (Indonesia) Pengertian Algoritma [ pranala nonaktif permanen ] (Inggris) Hazewinkel, Michiel , ed. (2001) [1994], "Algorithm" , Encyclopedia of Mathematics , Springer Science+Business Media B.V. / Kluwer Academic Publishers, ISBN 978-1-55608-010-4 Algorithms di Curlie (dari DMOZ ) (Inggris) Weisstein, Eric W. "Algorithm" . MathWorld . (Inggris) Dictionary of Algorithms and Data Structures — National Institute of Standards and Technology (Inggris) Algorithms and Data Structures by Dr Nikolai Bezroukov Amerika Serikat Ensiklopedia Ukraina Modern Logika matematika Ilmu komputer teoretis Templat webarchive tautan wayback CS1 sumber berbahasa Inggris (en) Articles with hatnote templates targeting a nonexistent page Halaman yang menggunakan pranala magis ISBN Artikel mengandung teks Arab Lang and lang-xx using deprecated ISO 639 codes Galat CS1: parameter tidak didukung Galat CS1: ISSN Galat CS1: nilai parameter tidak valid Galat CS1: tanggal Pemeliharaan CS1: Tahun Artikel dengan pranala luar nonaktif Artikel dengan pranala luar nonaktif Februari 2021 Artikel dengan pranala luar nonaktif permanen Artikel berpranala Curlie Halaman dengan kesalahan referensi
📥 下载地址(文章结尾)
装机神器,快速安装一切系统。