Enwetara m ego n'aka Knuth maka 0x$3,00

Donald Knuth bụ ọkà mmụta sayensị kọmputa nke na-eche nnọọ banyere izi ezi nke akwụkwọ ya nke ọ tụrụ aro otu hex dollar ($2,56, 0x$1,00) maka “njehie” ọ bụla achọtara, ebe akọwara njehie dị ka ihe ọ bụla bụ “nkà na ụzụ, akụkọ ihe mere eme, n'ụdị odide, ma ọ bụ na ndọrọ ndọrọ ọchịchị ezighi ezi.” Achọrọ m n'ezie ịnweta ego n'aka Knuth, yabụ ekpebiri m ịchọ njehie na magnum opus ya "The Art of Programming" (TAOCP). Anyị jisiri ike chọta atọ. N'ikwekọ n'okwu ya, Knut zigara nlele maka ya 0x $3,00.

Enwetara m ego n'aka Knuth maka 0x$3,00

Dị ka ị pụrụ ịhụ, nke a abụghị ezigbo nlele. Knuth na-eziga ezigbo ndenye ego, mana kwụsịrị na 2008 n'ihi wayo juru ebe niile. Ugbu a ọ na-ezipụ "aka nke onwe asambodo nke nkwụnye ego" na Ụlọ ọrụ Bank of San Serriff (BoSS). Ọ na-ekwu na ọ dị njikere iziga ezigbo ego ma ọ bụrụ na ọ dị mkpa, mana ọ dị ka ọ bụ nnukwu nsogbu.

Ahụrụ m akwụkwọ edemede abụọ na otu njehie akụkọ ihe mere eme. M ga-edepụta ha n'usoro nke ibelata obere ihe.

Ụdị #1

Mpempe akwụkwọ nke mbụ dị na ibe 392 nke mpịakọta nke atọ nke "Nhazi na Ọchụchọ", ahịrị asatọ site na ala: "Mgbe ọchụchọ na-aga nke ọma, mgbe ụfọdụ (mgbe ụfọdụ) ọ na-achọsi ike ịbanye ndekọ ọhụrụ n'ime tebụl nwere ya. K; usoro na-eme nke a ka a na-akpọ search na fanye algọridim. Ndudue bụ na kama mgbe ụfọdụ aghaghị ịbụ mgbe ụfọdụ.

N'ezie, mmejọ dị otú ahụ abụghị ihe ijuanya. A ga-enwerịrị typos ole na ole n'ime edemede a naanị (enweghị ụgwọ ọrụ maka ịchọta ha). Ihe na-eju anya n'ezie bụ na ọ na-ahụghị ya ogologo oge. A naghị eli ibe 392 na mpaghara mgbakọ na mwepụ, ọ bụ ya peeji nke mbụ Isi nke 6 "Chọọ"! Ikekwe otu n'ime akụkụ a na-agụkarị na akwụkwọ. Na tiori, a ga-enwe typos kacha nta, mana mba.

Site n'ụzọ, ọ bụrụ na ị chetụla echiche ịgụ TAOCP, nwaa ya. Ọtụtụ ndị ga-asị na nke a bụ akwụkwọ ntụaka, ebụghị maka ịgụ ihe kpọmkwem, mana nke a abụghị eziokwu. Onye edemede nwere echiche doro anya na ụdị pụrụ iche. Naanị ihe na-egbochi ịgụ akwụkwọ bụ mgbagwoju anya nke mgbakọ na mwepụ. Otú ọ dị, e nwere ngwọta dị mfe: gụọ ruo mgbe ị bịara mgbakọ na mwepụ ị gaghị aghọta, gbanye ya, ma gaa na ngalaba na-esote ị nwere ike ịghọta. N'ịgụ ụzọ a, m na-atụ uche ma ọ dịkarịa ala 80% nke akwụkwọ ahụ, mana 20% nke ọzọ dị mma!

A na-ekwukwa na TAOCP adịghị mkpa, bụ ihe ochie ma ọ bụ na ọ bụghị na ọdabara na "ezigbo mmemme". Nke a abụghịkwa eziokwu. Dịka ọmụmaatụ, akụkụ nke mbụ na-esochi mmeghe ahụ na-eleba anya na ịchọta ihe n'usoro edozighị. Algọridim kachasị mfe maara ndị mmemme niile. Malite pointer na mmalite nke nhazi ahụ, wee mee ihe ndị a na akaghị:

  1. Lelee ma ihe dị ugbu a bụ nke achọrọ. Ọ bụrụ otu a, anyị weghachi ya; ma ọ bụghị ya
  2. Lelee ma ọ bụrụ na ihe nrịbama ahụ nọ na mpụga oke n'usoro. Ọ bụrụ otu a, weghachi mperi; ma ọ bụghị ya
  3. Banye wee gaa n'ihu.

Ugbu a tụlee: nlele oke ókè algọridim a chọrọ, na nkezi? N'okwu kachasị njọ, ebe nhazi ahụ enweghị mmewere, ihe ọ bụla dị na listi ahụ ga-achọ otu nlele, na nkezi ọ ga-abụ ihe dị ka. Enwetara m ego n'aka Knuth maka 0x$3,00. Algọridim nchọta kacha mara ihe nwere ike ịpụ na naanị otu nlele oke. Tinye ihe achọrọ na njedebe nke nhazi ahụ, wee malite pointer na mmalite nke nhazi ahụ ma mee ihe ndị a na akaghị:

  1. Lelee ma ihe dị ugbu a bụ nke achọrọ. Ọ bụrụ otú ahụ, anyị na-eweghachi nzaghachi ma ọ bụrụ na pointer dị n'ime n'usoro, ma ọ bụ njehie ma ọ bụrụ na ọ bụghị. Ma ọ bụghị ya
  2. Banye wee gaa n'ihu.

Otu ụzọ ma ọ bụ ọzọ, a na-ekwe nkwa na a ga-achọta ihe ahụ, a na-eme nyocha nke oke naanị otu ugboro mgbe nke a mere. Nke a bụ echiche miri emi, mana ọ dị mfe zuru oke ọbụlagodi maka onye mmemme novice. Eleghị anya enweghị m ike ịkọrọ ndị ọzọ mkpa ọrụ ahụ dị, mana enwere m ike itinye amamihe a ozugbo na koodu nkeonwe yana ọkachamara. Akwụkwọ TAOCP juputara na ihe bara nnukwu uru (iji mee ihe ziri ezi, enwerekwa ọtụtụ ihe dị iche iche dị na ya, dị ka. ụdị afụ).

"Chọọ, chọọ
Ka ọ dị
Chọọ, chọọ
Achọrọ m ịgba egwu"

- Luther Vandross, "Nchọgharị ahụ" (1980)

Ụdị #2

Ụdị nke abụọ dị na Mpịakọta 4A, Combinatorial Algorithms, Nkebi 1. Page 60 na-akọwa nsogbu metụtara ịhazi oge ndị na-atọ ọchị ka ha na-eme na cha cha dị iche iche. A na-ehota ọtụtụ ndị na-akpa ọchị n'ezie dị ka ihe atụ, gụnyere Lily Tomlin, Weird Al Yankovic, na Robin Williams, bụ́ ndị ka dị ndụ mgbe e bipụtara akwụkwọ ahụ. Knuth na-edepụta aha n'uju na ndeksi mgbe niile, yabụ edepụtara Williams na ibe 882 dị ka "Williams, Robin McLorim." Mana aha etiti ya kwụsịrị na "n" ọ bụghị "m", ya bụ, McLaurin.

McLaurin bụ aha nwa agbọghọ nne ya. Ọ bụụrụ nwa nwa Anselm Joseph McLaurin, Gọvanọ 34 nke Mississippi. O doro anya na ọchịchị ya echetaghị ihe ọma ọ bụla. Site n'akwụkwọ "Mississippi: akụkọ ihe mere eme":

"Ihe kachasị mkpa n'oge ọchịchị McLaurin bụ nkwupụta agha United States na Spain n'oge opupu ihe ubi nke 1898 ... N'ụzọ dị mwute, agha ahụ nwere ike inye ụfọdụ ndị ọrụ gọọmentị ohere itinye aka na iri ngo. E boro McLaurin ebubo maka omume dị iche iche a na-enyo enyo, gụnyere enweghị mmasị na iji ike mgbaghara eme ihe nke ukwuu. N'oge ngagharị iwe ahụ, ndị nkatọ boro gọvanọ ebubo na ọ bụ onye aṅụrụma, nke o kwetara n'ihu ọha. "

Njehie mere eme

Tụlee omenala otutu algọridim site na usoro ọmụmụ ụlọ akwụkwọ. Mmụba nke otu mkpụrụọnụọgụgụ ole ka ọ chọrọ? Ka e were ya na ị na-amụba Enwetara m ego n'aka Knuth maka 0x$3,00- nọmba ọnụọgụ Enwetara m ego n'aka Knuth maka 0x$3,00 on Enwetara m ego n'aka Knuth maka 0x$3,00-bit Enwetara m ego n'aka Knuth maka 0x$3,00. Mbụ mụbaa mkpụrụọnụọgụgụ nke mbụ Enwetara m ego n'aka Knuth maka 0x$3,00 maka nkeji ọ bụla Enwetara m ego n'aka Knuth maka 0x$3,00 otu otu. Mgbe ahụ mụbaa ọnụọgụ abụọ Enwetara m ego n'aka Knuth maka 0x$3,00 maka nkeji ọ bụla Enwetara m ego n'aka Knuth maka 0x$3,00 otu otu na ihe ndị ọzọ ruo mgbe ị gafechara ọnụọgụgụ niile Enwetara m ego n'aka Knuth maka 0x$3,00. Ya mere, ịba ụba nke ọdịnala chọrọ Enwetara m ego n'aka Knuth maka 0x$3,00 multiplications oge ochie. Karịsịa, na-amụba ọnụọgụ abụọ site na Enwetara m ego n'aka Knuth maka 0x$3,00 achọrọ ọkwa Enwetara m ego n'aka Knuth maka 0x$3,00 otu ọnụọgụgụ ọnụọgụgụ.

Nke a dị njọ, ma ọ ga-ekwe omume ịkwalite usoro ahụ site na iji usoro nke Soviet mathematician Anatoly Alekseevich Karatsuba mepụtara. Ka anyị mee ka ọ dị otú ahụ Enwetara m ego n'aka Knuth maka 0x$3,00 и Enwetara m ego n'aka Knuth maka 0x$3,00 - ọnụọgụ ọnụọgụ ọnụọgụ abụọ; ya bụ, e nwere ọnụọgụgụ Enwetara m ego n'aka Knuth maka 0x$3,00, Enwetara m ego n'aka Knuth maka 0x$3,00, Enwetara m ego n'aka Knuth maka 0x$3,00, Enwetara m ego n'aka Knuth maka 0x$3,00 dị otú ahụ Enwetara m ego n'aka Knuth maka 0x$3,00 и Enwetara m ego n'aka Knuth maka 0x$3,00 (ịmepụta algọridim a na ọnụ ọgụgụ buru ibu na-achọ ụfọdụ aghụghọ, ọ bụ ezie na ọ bụghị ihe siri ike, ka ị ghara imehie ihe na nkọwa, m ga-arapara n'ihe atụ dị mfe). Mgbe ahụ Enwetara m ego n'aka Knuth maka 0x$3,00, Enwetara m ego n'aka Knuth maka 0x$3,00, Enwetara m ego n'aka Knuth maka 0x$3,00. Ịba ụba binomial na-enye Enwetara m ego n'aka Knuth maka 0x$3,00. N'oge anyị ka nwere Enwetara m ego n'aka Knuth maka 0x$3,00 Otutu ọnụọgụgụ: Enwetara m ego n'aka Knuth maka 0x$3,00, Enwetara m ego n'aka Knuth maka 0x$3,00, Enwetara m ego n'aka Knuth maka 0x$3,00, Enwetara m ego n'aka Knuth maka 0x$3,00. Ugbu a, ka anyị gbakwunye ma wepụ Enwetara m ego n'aka Knuth maka 0x$3,00. Mgbe nhazigharị ole na ole gasịrị, nke m ga-ahapụ dịka mmega ahụ maka onye na-agụ ya, ọ na-apụta Enwetara m ego n'aka Knuth maka 0x$3,00 - naanị ọnụọgụ ọnụọgụ ọnụọgụ ọnụọgụ atọ! (E nwere ụfọdụ ọnụọgụ ọnụọgụgụ mgbe niile, mana enwere ike ịgbakọ ha naanị site na ịgbakwunye na ịtụgharị mkpụrụ ọnụọgụ).

Ajụla ihe akaebe, mana Algọridim nke Karatsuba (recursively generalized si ihe atụ n'elu) mma na omenala otutu usoro na Enwetara m ego n'aka Knuth maka 0x$3,00 arụmọrụ tupu Enwetara m ego n'aka Knuth maka 0x$3,00. Biko mara na nke a bụ ezigbo nkwalite na algọridim, ọ bụghị njikarịcha maka mgbako echiche. N'ezie, algọridim adịghị adabara maka mgbakọ uche uche, ebe ọ na-achọ nnukwu ụgwọ ego maka ọrụ ndị ọzọ. Na mgbakwunye, mmetụta ahụ agaghị egosipụta onwe ya n'ụzọ zuru ezu ruo mgbe ọnụọgụ ahụ buru ibu (ọ dabara nke ọma, ejirila ụzọ ngwa ngwa dochie algorithm nke Karatsuba: na Machị 2019, ebipụtara algọridim nke chọrọ naanị. n log n otutu; osooso na-emetụta naanị ọnụ ọgụgụ buru ibu na-enweghị atụ).

Akọwara algọridim a na ibe 295 nke Mpịakọta XNUMX, Ọkara ọnụọgụ Algorithms. N'ebe ahụ Knuth na-ede, sị: "Ọ na-achọsi ike na a chọtara echiche a nanị n'ime ya 1962 afọ,” mgbe ebipụtara otu akụkọ na-akọwa algọridim nke Karatsuba. Ma! N'afọ 1995, Karatsuba bipụtara akwụkwọ na "Computational Complexity," nke na-ekwu ọtụtụ ihe: 1) N'ihe dị ka afọ 1956, Kolmogorov tụrụ aro na a pụghị ime ọtụtụ n'ime ihe na-erughị ya. Enwetara m ego n'aka Knuth maka 0x$3,00 nzọụkwụ; 2) n'ime 1960 afọ Karatsuba gara nzukọ ọmụmụ ebe Kolmogorov gosipụtara echiche ya n². 3) "N'ime otu izu kpọmkwem," Karatsuba mepụtara algọridim nke "nkewa na imeri"; 4) na 1962 Kolmogorov dere na bipụtara otu isiokwu n'aha Karatsuba na nkọwa nke algọridim. "Achọpụtara m naanị maka akụkọ a ka e bipụtaghachiri ya."

Ya mere, njehie bụ na kama 1962 ga-kpọmkwem 1960 afọ. Ọ gwụla.

Анализ

Ịchọta mperi achọghị nka pụrụ iche.

  1. Njehie nke mbụ dị ntakịrị dị ka o kwere mee ma nọrọ n'ebe a na-ahụ anya (mmalite nke isi). Onye nzuzu ọ bụla gaara achọta ya; M mechara bụrụ onye nzuzu ahụ.
  2. Ịchọta typo nke abụọ chọrọ chi ọma na ịdị uchu, mana ọ bụghị nka. Ndekọ maka "Williams" dị na penultimate ibe nke olu, akụkụ pụtara ìhè nke akwụkwọ. Naanị m na-atụgharị n'ime ndeksi (ọ bụghị ihe na-emetụ n'ahụ ka ọ na-ada, n'ihi na e nwere akwa Ista nke zoro ezo na ndenye aha Knuth. Dị ka ihe atụ, e nwere ihe ndenye n'asụsụ Arabic na Hibru, ha abụọ na-atụ aka na peeji nke 66. Mana ibe ahụ ekwughị okwu. ma asụsụ; kama ọ na-ezo aka na "asụsụ ndị a na-agụ site n'aka nri gaa n'aka ekpe"). Na aha nke abụọ dọọrọ uche m. Ebe ọ bụ na m na-agụkarị Wikipedia, enyochara m Robin Williams wee hụ enweghị nghọta.
  3. Ọ dị m ka ya bụrụ na m nwere ike ịsị na m mere nyocha siri ike ịchọta njehie akụkọ ihe mere eme, mana n'ezie ka m lere anya Ibe Wikipedia gbasara algọridim nke Karatsuba. Ahịrị ndị mbụ na-ekwu, sị: “Karatsuba algọridim bụ algọridim na-abawanye ngwa ngwa. Achọpụtara Anatoly Karatsuba na 1960 wee bipụta ya na 1962." Mgbe nke ahụ gasịrị, naanị ihe fọdụrụ bụ ịgbakwunye abụọ na abụọ.

N'ọdịnihu ọ ga-amasị m ịchọta ahụhụ dị mkpa karịa, ọkachasị na koodu Knuth. Ọ ga-amasị m ịchọta ahụhụ na mpịakọta mbụ nke Algorithms Fundamental. Ma eleghị anya, agara m ahụ ya, ma n'ihi ihe ụfọdụ, ọbá akwụkwọ mpaghara nwere naanị mpịakọta 2, 3 na 4A.

Eziokwu gbasara ego:

  • Na mkpokọta, ntinye aka m na TAOCP nwere naanị mkpụrụedemede atọ: otu mgbakwunye s, nnọchi m on n и 2 on 0. Na $2,56, ndị a bụ ụfọdụ akara mara mma na-enye nnukwu ego; Ọ bụrụ na akwụgoro gị ụdị ego ahụ, edemede nke okwu 1000 (nkezi nke mkpụrụedemede anọ) ga-enweta gị nnukwu ego iri.
  • N'iji dollar hexadecimal atọ, mụ na ụmụ amaala 29 ndị ọzọ, jikọtara maka ọnọdụ 69th na ndepụta nke ndị nkwụnye ego kacha baa ọgaranya nke San Serriff Bank (dịka nke Mee 1, 2019).

Mkparịta ụka ndị ọzọ gbasara ndenye ego sitere na Knuth

  • Otu esi enweta ego n'aka Knuth

    Ndụmọdụ izugbe maka ịchọta mperi n'akwụkwọ Knuth. Ọtụtụ n'ime ha na-emetụta njehie teknụzụ, nke m na-enweghị. Enwere otu aro n'ebe ahụ nke m ji kpọrọ ihe:

    Ọ kacha mma ichere ruo mgbe ị chịkọtara ọtụtụ mperi iji nyefee. Site n'ijikọta ọtụtụ mperi dị adị mana ọ bụghị nke bara ezigbo uru, ị na-abawanye ohere na otu n'ime ha ga-ewere n'ezie dị ka ndudue ma ọ bụ ndụmọdụ. Ọ bụrụ na ị nyefee njehie otu otu, onye nke ọ bụla n'otu n'otu nwere ike ịjụ.

    Achọghị m izipu naanị typos efu, ma were ndụmọdụ ahụ wee zipụ akwụkwọ ozi ahụ naanị mgbe m hụrụ njehie akụkọ ihe mere eme nke yiri ka ọ dị oke njọ.

  • Nyocha Ashutosh Mehra

    Ashutosh Mehra bụ onye nke atọ kacha baa ọgaranya na San Serriff nwere ọnụ ahịa 0x$207.f0 na BoSS.

  • Lelee ụfọdụ chinchi anaghị arụ ọrụ na koodu TeX n'ezie
  • Ihe dị iche iche: #1 #2 #3 #4 #5 #6

isi: www.habr.com

Tinye a comment