stanford-oval/wikipedia huggingface dataset:
Karl-Anthony Towns
Statistik karir

| Legend |
| --- | --- | --- | --- | --- | --- |
|   GP | Main dalam pertandingan |   GS  | Pemain utama pertandingan |  MPG  | Menit tiap pertandingan |
|  FG%  | Persentase Field-goal |  3P%  | Persentase Field-goal 3-angka |  FT%  | Persentase Free-throw |
|  RPG  | Rebound tiap pertandingan |  APG  | Assist tiap pertandingan |  SPG  | Steal tiap pertandingan |
|  BPG  | Blok tiap pertandingan |  PPG  | Poin tiap pertandingan |  Bold  | Rekor pribadi |
Statistik karir > NBA > Musim reguler

| Tahun | Tim | GP | GS | MPG | FG% | 3P% | FT% | RPG | APG | SPG | BPG | PPG |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 2015 | Minnesota | 82* | 82* | 32.0 | .542 | .341 | .811 | 10.5 | 2.0 | .7 | 1.7 | 18.3 |
| 2016 | Minnesota | 82* | 82* | 37.0 | .542 | .367 | .832 | 12.3 | 2.7 | .7 | 1.3 | 25.1 |
| 2017 | Minnesota | 82* | 82* | 35.6 | .545 | .421 | .858 | 12.3 | 2.4 | .8 | 1.4 | 21.3 |
| 2018 | Minnesota | 77 | 77 | 33.1 | .518 | .400 | .836 | 12.4 | 3.4 | .9 | 1.6 | 24.4 |
| 2019 | Minnesota | 35 | 35 | 33.9 | .508 | .412 | .796 | 10.8 | 4.4 | .9 | 1.2 | 26.5 |
| 2020 | Minnesota | 50 | 50 | 33.8 | .486 | .387 | .859 | 10.6 | 4.5 | .8 | 1.1 | 24.8 |
| 2021 | Minnesota | 74 | 74 | 33.5 | .529 | .410 | .822 | 9.8 | 3.6 | 1.0 | 1.1 | 24.6 |
| 2022 | Minnesota | 29 | 29 | 33.0 | .495 | .366 | .874 | 8.1 | 4.8 | .7 | .6 | 20.8 |
| Karir | Karir | 511 | 511 | 34.1 | .526 | .395 | .835 | 11.2 | 3.2 | .8 | 1.3 | 23.0 |
| All-Star | All-Star | 3 | 0 | 14.7 | .615 | .273 | 1.000 | 6.3 | 1.3 | .3 | .0 | 12.3 |
Statistik karir > NBA > Play-in

| Tahun | Tim | GP | GS | MPG | FG% | 3P% | FT% | RPG | APG | SPG | BPG | PPG |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 2022 | Minnesota | 1 | 1 | 24.3 | .273 | .000 | .833 | 5.0 | 3.0 | 2.0 | .0 | 11.0 |
| 2023 | Minnesota | 2 | 2 | 35.1 | .679 | .375 | 1.000 | 11.0 | 4.0 | .0 | 3.0 | 26.0 |
| Karir | Karir | 3 | 3 | 31.5 | .564 | .300 | .941 | 9.0 | 3.7 | .7 | 2.0 | 21.0 |
Statistik karir > NBA > Playoff

| Tahun | Tim | GP | GS | MPG | FG% | 3P% | FT% | RPG | APG | SPG | BPG | PPG |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 2018 | Minnesota | 5 | 5 | 33.9 | .467 | .273 | .739 | 13.4 | 2.2 | .4 | 1.0 | 15.2 |
| 2022 | Minnesota | 6 | 6 | 36.9 | .488 | .455 | .860 | 10.8 | 2.2 | .7 | 2.0 | 21.8 |
| 2023 | Minnesota | 5 | 5 | 36.0 | .457 | .250 | .750 | 10.2 | 2.0 | .6 | .8 | 18.2 |
| Karir | Karir | 16 | 16 | 35.7 | .471 | .333 | .802 | 11.4 | 2.1 | .6 | 1.3 | 18.6 |
Statistik karir > Perguruan tinggi

| Tahun | Tim | GP | GS | MPG | FG% | 3P% | FT% | RPG | APG | SPG | BPG | PPG |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 2014–15 | Kentucky | 39 | 39 | 21.1 | .566 | .250 | .813 | 6.7 | 1.1 | .5 | 2.3 | 10.3 |
Pranala luar

Karl-Anthony Towns di X
Profil di situs FIBA
| l b Penghargaan Rookie of the Year NBA |
| --- | --- |
 1953: Meineke  1954: Felix  1955: Pettit  1956: Stokes  1957: Heinsohn  1958: Sauldsberry  1959: Baylor  1960: Chamberlain  1961: Robertson  1962: Bellamy  1963: Dischinger  1964: Lucas  1965: Reed  1966: Barry  1967: Bing  1968: Monroe  1969: Unseld  1970: Alcindor  1971: Cowens & Petrie  1972: Wicks  1973: McAdoo  1974: DiGregorio  1975: Wilkes  1976: Adams  1977: Dantley  1978: Davis  1979: Ford  1980: Bird  1981: Griffith  1982: Williams  1983: Cummings  1984: Sampson  1985: Jordan  1986: Ewing  1987: Person  1988: Jackson  1989: Richmond  1990: Robinson  1991: Coleman  1992: Johnson  1993: O'Neal  1994: Webber  1995: Hill & Kidd  1996: Stoudamire  1997: Iverson  1998: Duncan  1999: Carter  2000: Brand & Francis  2001: Miller  2002: Gasol  2003: Stoudemire  2004: James  2005: Okafor  2006: Paul  2007: Roy  2008: Durant  2009: Rose  2010: Evans  2011: Griffin  2012: Irving  2013: Lillard  2014: Carter-Williams  2015: Wiggins  2016: Towns  2017: Brogdon  2018: Simmons  2019: Dončić  2020: Morant  2021: Ball  2022: Barnes  2023: Banchero 
Towns (kiri) dan Taj Gibson pada tahun 2019
Algoritma

Diagram alur dari sebuah algoritma (Algoritma Euklides) untuk menghitung faktor persekutuan terbesar (f.p.b.) dari dua angka a dan b dalam lokasi bernama A dan B. Algoritma dijalankan dengan pengurangan berturut-turut dalam dua pengulangan: JIKA pengujian B >= A menghasilkan "ya" (atau benar) (lebih akuratnya angka b dalam lokasi B lebih besar atau sama dengan angka a dalam lokasi A) MAKA, algoritma menentukan B ← B - A (artinya angka b - a menggantikan b sebelumnya). Hal yang sama, JIKA A > B, MAKA A ← A - B. Proses tersebut berhenti saat (isi dari) B adalah 0, menghasilkan f.p.k. dalam A. (Algoritma tersebut diambil dari Scott 2009:13; simbol dan gaya penggambaran dari Tausworthe 1977).
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 dipraktekkan oleh Alan Turing dengan terminologi seperti "memory", "search" dan "stimulus".
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.
Sebagai metode yang efektif, algoritma dapat diekspresikan dalam jumlah ruang dan waktu yang terbatas, dan dalam bahasa formal yang terdefinisi dengan baik untuk menghitung suatu fungsi. Dimulai dari tataran awal dan input awal (bisa jadi kosong), instruksi-instruksi yang ada menggambarkan sebuah komputasi yang, ketika dieksekusi, berjalan melalui sejumlah tataran dengan jumlah terhingga yang terdefinisi dengan baik, yang pada akhirnya menghasilkan "output" dan berakhir pada tataran final akhir. Transisi dari satu tataran ke tataran berikutnya tidak selalu bersifat menentukan; beberapa algoritma, yang dikenal sebagai algoritma acak, menggabungkan input acak.
Definisi informal

Untuk penjelasan lebih rinci dari berbagai sudut pandang mengenai definisi "algoritma", lihat Karakterisasi Algoritma.
Definisi informalnya bisa berarti "sekumpulan aturan yang secara tepat menentukan seurutan operasi".

yang mengikutkan semua program komputer, termasuk program yang tidak melakukan perhitungan numerik.
Secara umum, sebuah program hanyalah sebuah algoritma jika ia akan berhenti nantinya.
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.
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.
Formalisasi

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".
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".
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.
Formalisasi > 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:
Sebagai contoh dari algoritma sederhana "Penjumlahan m+n" dijelaskan dalam tiga tingkatan tersebut lihat contoh algoritma.
Implementasi

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.
Contoh

Info lebih lanjut: Contoh algoritma
Contoh > 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:
Algoritma LargestNumber
  Masukan: Deret angka L.
  Keluaran: Angka terbesar dalam daftar L.
terbesar ← Lnull
  untuk setiap item dalam L, lakukan
    jika item > terbesar, maka
      terbesar ← item
  kembalikan terbesar
"←" adalah singkatan untuk "diubah menjadi". Misalnya, "terbesar ← item" artinya nilai dari terbesar diubah menjadi nilai dari item.
"kembalikan" mengakhiri algoritma dan mengeluarkan nilai kembalian.
Contoh > Algoritma Euclid

Info lebih lanjut: Algoritma Euklid
Algoritma Euclid muncul sebagai Proposisi II dalam Book VII ("Elementary Number Theory") dari Elements.

Euclid mengajukan permasalahan: "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.

Dalam dunia modern, sisa r = l - q*s, q sebagai hasil bagi, atau sisa r adalah "modulus", bagian sisa-integer yang tersisa setelah pembagian.
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.

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.
Contoh > Algoritma Euclid > 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.
Contoh > Algoritma Euclid > 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:
INPUT:
1 [Kedalam dua lokasi L dan S taruh angka l dan s yang merepresentasikan kedua panjang]:
 INPUT L, S
2 [Inisialisasi R: buat supaya sisa panjang r sama dengan panjang awal l]
 R ← L
E0: [Pastikan r ≥ s.]
3 [Pastikan angka terkecil dari kedua angka ada dalam S dan yang terbesar di R]:
  IF R > S THEN
    isi dari L adalah angka terbesar jadi lewati langkah 4, 5 dan 6:
    GOTO step 6
  ELSE
    tukar isi R dan S.
4 L ← R (langkah pertama ini berlebih, tetapi berguna untuk diskusi nanti).
5 R ← S
6 S ← L
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.
7 IF S > R THEN
   selesai mengukur jadi
   GOTO 10
 ELSE
   ukur lagi,
8 R ← R - S
9 [Pengulangan-sisa]:
   GOTO 7.
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.
10 IF R = 0 THEN
   selesai jadi
   GOTO langkah 15
 ELSE
   lanjut ke langkah 11,
E3: [Interchange s dan r]: Sulitnya algoritma Euclid. Menggunakan sisa r untuk mengukur angka terkecil sebelumnya s:; L sebagai lokasi sementara.
11 L ← S
12 R ← S
13 S ← L
14 [Ulang proses pengukuran]:
   GOTO 7
OUTPUT:
15 [Selesai. S berisi faktor persekutuan terbesar]:
   PRINT S
DONE:
16 HALT, END, STOP.
Contoh > Algoritma Euclid > 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 ←.
5 REM Algoritma Euclid untuk faktor persekuturan terbesar
  6 PRINT "Masukan dua integer besar dari 0"
  10 INPUT A,B
  20 IF B=0 THEN GOTO 80
  30 IF A > B THEN GOTO 60
  40 LET B=B-A
  50 GOTO 20
  60 LET A=A-B
  70 GOTO 20
  80 PRINT A
  90 END
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.
Contoh > Menguji algoritma Euclid

Apakah algoritma berjalan seperti yang penulis inginkan?
Beberapa kasus uji cukup menentukan fungsi inti.
Sumber pertama

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."

Tausworthe mengajukan bahwa sebuah pengukuran dari kompleksitas dari sebuah program adalah panjang dari pembuktian kebenarannya.
Contoh > 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

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;

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.