Mo gba ayẹwo lati Knuth fun 0x $ 3,00

Donald Knuth jẹ onímọ̀ sáyẹ́ǹsì kọ̀ǹpútà kan tó bìkítà gan-an nípa ìpéye àwọn ìwé rẹ̀ tí ó dámọ̀ràn dola hex kan ($ 2,56, 0x$1,00) fun eyikeyi "aṣiṣe" ti a ri, nibiti aṣiṣe ti wa ni asọye bi ohunkohun ti o jẹ "imọ-ẹrọ, itan-akọọlẹ, ti iwe-kikọ, tabi ti iṣelu ti ko tọ." Mo fẹ lati gba ayẹwo lati Knuth, nitorina ni mo ṣe pinnu lati wa awọn aṣiṣe ni magnum opus rẹ "Aworan ti siseto" (TAOCP). A ṣakoso lati wa mẹta. Ni otitọ si ọrọ rẹ, Knut firanṣẹ ayẹwo kan fun 0x $ 3,00.

Mo gba ayẹwo lati Knuth fun 0x $ 3,00

Bi o ti le ri, eyi kii ṣe ayẹwo gidi. Knuth lo a fi gidi sọwedowo, ṣugbọn duro ni 2008 nitori latari jegudujera. O si bayi rán jade "ti ara ẹni awọn iwe-ẹri ti idogo" to Bank of San Serriff (BoSS). O sọ pe o fẹ lati fi owo gidi ranṣẹ ti o ba jẹ dandan, ṣugbọn o dabi pe o jẹ wahala pupọ.

Mo ti ri meji typos ati ọkan itan aṣiṣe. Emi yoo ṣe atokọ wọn ni aṣẹ ti idinku bintin.

Iru #1

Ibẹrẹ akọkọ wa ni oju-iwe 392 ti iwọn kẹta ti “Itọsọna ati Wiwa”, laini kẹjọ lati isalẹ: “Lẹhin wiwa ti ko ni aṣeyọri, nigbakan (nigbakugba) o jẹ iwunilori lati tẹ igbasilẹ tuntun sinu tabili ti o ni ninu. K; ọna ti o ṣe eyi ni a npe ni wiwa ati fi algorithm sii. Asise ni wipe dipo igba diẹ yẹ ki o jẹ ma.

Dajudaju, iru aṣiṣe bẹ ko jẹ ohun iyanu. Nibẹ ni owun lati jẹ awọn typos diẹ ninu nkan yii nikan (ko si awọn ere fun wiwa wọn). Kini iyalẹnu gaan ni pe ko ṣe akiyesi fun igba pipẹ. Oju-iwe 392 ko sin jinna si apakan iṣiro, o jẹ awọn gan akọkọ iwe Abala 6 "Ṣawari"! O ṣee ṣe ọkan ninu awọn apakan kika julọ ti iwe naa. Ni imọran, o yẹ ki o jẹ awọn typos ti o kere julọ, ṣugbọn rara.

Nipa ọna, ti o ba ti ronu nipa kika TAOCP, fun u ni igbiyanju. Ọpọlọpọ yoo sọ pe eyi ni liana, kii ṣe ipinnu fun kika taara, ṣugbọn eyi kii ṣe otitọ. Onkọwe ni oju-iwoye ti o han gbangba ati ara iyasọtọ. Ohun kan ṣoṣo ti o ṣe idiwọ kika ni idiju ti mathematiki. Sibẹsibẹ, ojutu ti o rọrun kan wa: ka titi ti o fi wa si mathimatiki iwọ ko loye, fo rẹ, ki o lọ si apakan atẹle ti o le loye. Kika ni ọna yii, Mo padanu o kere ju 80% ti iwe, ṣugbọn 20% miiran jẹ nla!

O tun sọ pe TAOCP ko ṣe pataki, ti igba atijọ tabi bibẹẹkọ ko wulo si “siseto gidi”. Eyi tun kii ṣe otitọ. Fún àpẹrẹ, abala àkọ́kọ́ lẹ́yìn ìfihàn n wo wíwá ohun kan nínú àkójọpọ̀ àìlèsọ́tọ̀. Algoridimu ti o rọrun julọ jẹ faramọ si gbogbo awọn pirogirama. Bẹrẹ itọka ni ibẹrẹ ti orun, lẹhinna ṣe atẹle ni lupu kan:

  1. Ṣayẹwo boya ohun elo lọwọlọwọ jẹ ọkan ti o fẹ. Ti o ba jẹ bẹ, a da pada; bibẹkọ ti
  2. Ṣayẹwo boya itọkasi wa ni ita aala orun. Ti o ba jẹ bẹ, da aṣiṣe pada; bibẹkọ ti
  3. Sun-un sinu ati tẹsiwaju.

Nisisiyi ronu: melo ni awọn sọwedowo awọn ala ni algoridimu yii nilo, ni apapọ? Ninu ọran ti o buru julọ, nibiti akopọ ko ni ipin kan, ipin kọọkan ninu atokọ yoo nilo ayẹwo kan, ati ni apapọ yoo jẹ nkan bii Mo gba ayẹwo lati Knuth fun 0x $ 3,00. Alugoridimu wiwa ijafafa le lọ kuro pẹlu ayẹwo awọn ala kan kan. So nkan ti o fẹ pọ si opin ti orun, lẹhinna bẹrẹ itọka ni ibẹrẹ ti orun ki o ṣe atẹle ni lupu kan:

  1. Ṣayẹwo boya ohun elo lọwọlọwọ jẹ ọkan ti o fẹ. Ti o ba jẹ bẹ, a da esi pada ti itọka ba wa laarin titobi, tabi aṣiṣe ti ko ba jẹ bẹ. Bibẹẹkọ
  2. Sun-un sinu ati tẹsiwaju.

Ona kan tabi miiran, awọn ano ti wa ni ẹri a ri, ati awọn aala ayẹwo ti wa ni ošišẹ ti ni ẹẹkan nigbati yi ṣẹlẹ. Eyi jẹ imọran ti o jinlẹ, ṣugbọn o rọrun to paapaa fun oluṣeto alakobere. Emi ko le sọrọ si ibaramu ti iṣẹ naa si awọn miiran, ṣugbọn Mo ni anfani lẹsẹkẹsẹ lati lo ọgbọn yii si mejeeji ti ara ẹni ati koodu ọjọgbọn. Iwe TAOCP kun fun iru awọn okuta iyebiye (lati ṣe deede, ọpọlọpọ awọn ohun ajeji tun wa nibẹ, bii ti nkuta too).

"Ṣawari, ṣawari
O digba kan na
Wa, wa
Mo kan fe jo”

- Luther Vandross, "Iwadi" (1980)

Iru #2

Awọn keji typo ni iwọn didun 4A, Combinatorial alugoridimu, Apá 1. Oju-iwe 60 sapejuwe a isoro okiki iṣeto ni comedians lati ṣe ni orisirisi awọn kasino. Ọpọlọpọ awọn apanilẹrin igbesi aye gidi ni a tọka si gẹgẹbi apẹẹrẹ, pẹlu Lily Tomlin, Weird Al Yankovic, ati Robin Williams, ti o wa laaye nigbati a tẹjade iwe naa. Knuth nigbagbogbo n ṣe atokọ awọn orukọ ni kikun ninu atọka, nitorinaa Williams ṣe atokọ ni oju-iwe 882 gẹgẹbi “Williams, Robin McLorim.” Ṣugbọn orukọ arin rẹ dopin pẹlu "n" kii ṣe "m", eyini ni, McLaurin.

McLaurin ni orukọ wundia iya rẹ. O jẹ ọmọ-ọmọ Anselm Joseph McLaurin, Gomina 34th ti Mississippi. Ijọba rẹ, nkqwe, a ko ranti fun ohunkohun ti o dara. Lati iwe "Mississippi: Itan":

"Iṣẹlẹ ti o ṣe pataki julọ lakoko iṣakoso McLaurin ni ikede ti Amẹrika ti ogun lori Spain ni orisun omi 1898 ... Laanu, ogun naa le ti pese diẹ ninu awọn aṣoju ijọba ni anfani lati ṣe alabapin ni abẹtẹlẹ. Wọ́n fi ẹ̀sùn kan McLaurin fún oríṣiríṣi àwọn àṣà tí kò lẹ́sẹ̀ nílẹ̀, pẹ̀lú ìfẹ́ onífẹ̀ẹ́ àti lílo agbára ìdáríjì jù. Lakoko igbiyanju ibinu, awọn alariwisi fi ẹsun kan gomina pe o jẹ ọmuti, eyiti o jẹwọ ni gbangba.”

Asise itan

Wo alugoridimu isodipupo ibile lati iwe-ẹkọ ile-iwe. Awọn isodipupo oni-nọmba ẹyọkan melo ni o nilo? Ká sọ pé o pọ̀ sí i Mo gba ayẹwo lati Knuth fun 0x $ 3,00-nọmba nọmba Mo gba ayẹwo lati Knuth fun 0x $ 3,00 on Mo gba ayẹwo lati Knuth fun 0x $ 3,00-bit Mo gba ayẹwo lati Knuth fun 0x $ 3,00. Ni akọkọ isodipupo nọmba akọkọ Mo gba ayẹwo lati Knuth fun 0x $ 3,00 fun kọọkan nọmba Mo gba ayẹwo lati Knuth fun 0x $ 3,00 ọkan nipa ọkan. Lẹhinna ṣe isodipupo nọmba keji Mo gba ayẹwo lati Knuth fun 0x $ 3,00 fun kọọkan nọmba Mo gba ayẹwo lati Knuth fun 0x $ 3,00 ọkan nipa ọkan ati be be lo titi ti o lọ nipasẹ gbogbo awọn nọmba Mo gba ayẹwo lati Knuth fun 0x $ 3,00. Bayi isodipupo ibile nbeere Mo gba ayẹwo lati Knuth fun 0x $ 3,00 atijo isodipupo. Ni pataki, isodipupo awọn nọmba meji nipasẹ Mo gba ayẹwo lati Knuth fun 0x $ 3,00 awọn ipo ti a beere Mo gba ayẹwo lati Knuth fun 0x $ 3,00 awọn isodipupo oni-nọmba kan.

Eyi jẹ buburu, ṣugbọn o ṣee ṣe lati mu ilana naa pọ si nipa lilo ọna ti a ṣe nipasẹ Soviet mathimatiki Anatoly Alekseevich Karatsuba. Jẹ ká dibọn wipe Mo gba ayẹwo lati Knuth fun 0x $ 3,00 и Mo gba ayẹwo lati Knuth fun 0x $ 3,00 - awọn nọmba eleemewa oni-nọmba meji; iyẹn ni, awọn nọmba wa Mo gba ayẹwo lati Knuth fun 0x $ 3,00, Mo gba ayẹwo lati Knuth fun 0x $ 3,00, Mo gba ayẹwo lati Knuth fun 0x $ 3,00, Mo gba ayẹwo lati Knuth fun 0x $ 3,00 iru bẹ Mo gba ayẹwo lati Knuth fun 0x $ 3,00 и Mo gba ayẹwo lati Knuth fun 0x $ 3,00 (iṣapeye algorithm yii si awọn nọmba ti o tobi ju nilo diẹ ninu ifọwọyi; botilẹjẹpe ko nira pupọ, lati ma ṣe awọn aṣiṣe ninu awọn alaye, Emi yoo dara dara si apẹẹrẹ ti o rọrun). Lẹhinna Mo gba ayẹwo lati Knuth fun 0x $ 3,00, Mo gba ayẹwo lati Knuth fun 0x $ 3,00, Mo gba ayẹwo lati Knuth fun 0x $ 3,00. Isodipupo binomials yoo fun Mo gba ayẹwo lati Knuth fun 0x $ 3,00. Ni akoko ti a tun ni Mo gba ayẹwo lati Knuth fun 0x $ 3,00 isodipupo oni-nọmba kan: Mo gba ayẹwo lati Knuth fun 0x $ 3,00, Mo gba ayẹwo lati Knuth fun 0x $ 3,00, Mo gba ayẹwo lati Knuth fun 0x $ 3,00, Mo gba ayẹwo lati Knuth fun 0x $ 3,00. Bayi jẹ ki a ṣafikun ati yọkuro Mo gba ayẹwo lati Knuth fun 0x $ 3,00. Lẹhin awọn atunto diẹ, eyiti Emi yoo fi silẹ bi adaṣe fun oluka, o wa ni jade Mo gba ayẹwo lati Knuth fun 0x $ 3,00 - nikan meta nikan-nọmba isodipupo! (Awọn iye-iye igbagbogbo wa, ṣugbọn wọn le ṣe iṣiro nikan nipasẹ fifi kun ati yiyipada awọn nọmba).

Maṣe beere fun ẹri, ṣugbọn Karatsuba alugoridimu (recursively ti ṣakopọ lati awọn apẹẹrẹ loke) se lori awọn ibile isodipupo ọna pẹlu Mo gba ayẹwo lati Knuth fun 0x $ 3,00 mosi ṣaaju ki o to Mo gba ayẹwo lati Knuth fun 0x $ 3,00. Jọwọ ṣe akiyesi pe eyi jẹ ilọsiwaju gidi si algorithm, kii ṣe iṣapeye fun awọn iṣiro ọpọlọ. Lootọ, algoridimu ko dara fun iṣiro ọpọlọ, nitori o nilo awọn idiyele ti o tobi ju fun awọn iṣẹ ṣiṣe loorekoore. Ni afikun, ipa naa kii yoo fi ara rẹ han ni kikun titi awọn nọmba yoo fi tobi to (dare, a ti rọpo algorithm Karatsuba nipasẹ awọn ọna iyara paapaa: ni Oṣu Kẹta ọdun 2019, a ṣe atẹjade algorithm kan ti o nilo nikan n log n isodipupo; isare nikan kan si awọn nọmba ti o tobi ti a ko lero).

Algorithm yii jẹ apejuwe ni oju-iwe 295 ti Iwọn didun XNUMX, Awọn alugoridimu Ologbele-Numerical. Nibẹ Knuth kọwe pe: “O jẹ iyanilenu pe inu nikan ni a ṣe awari imọran yii 1962 ọdun,” nigbati nkan kan ti n ṣapejuwe algorithm Karatsuba ti ṣe atẹjade. Sugbon! Ni ọdun 1995, Karatsuba ṣe atẹjade iwe kan lori “Iṣoro Iṣiro,” eyiti o sọ ọpọlọpọ awọn nkan: 1) Ni ayika 1956, Kolmogorov daba pe isodipupo ko le ṣee ṣe ni kere ju Mo gba ayẹwo lati Knuth fun 0x $ 3,00 awọn igbesẹ; 2) ninu 1960 odun Karatsuba lọ si awọn semina ibi ti Kolmogorov gbekalẹ rẹ ilewq n². 3) "Ni pato ọsẹ kan," Karatsuba ni idagbasoke "pin ati ṣẹgun" algorithm; 4) ni 1962 Kolmogorov kowe ati atejade ohun article lori dípò Karatsuba pẹlu apejuwe kan ti alugoridimu. “Mo ti rii nipa nkan yii nikan lẹhin ti a tun gbejade.”

Nitorina aṣiṣe ni pe dipo 1962 gbọdọ wa ni pato 1960 odun. Gbogbo ẹ niyẹn.

Анализ

Wiwa awọn aṣiṣe ko nilo ọgbọn pataki.

  1. Aṣiṣe akọkọ jẹ bintin bi o ti ṣee ṣe ati pe o wa ni aaye ti o han (ibẹrẹ ti ipin). Eyikeyi aṣiwere yoo ti ri; Mo ṣẹ̀ṣẹ̀ wá di òmùgọ̀ yẹn.
  2. Wiwa awọn keji typo beere orire ati aisimi, sugbon ko olorijori. Atọka fun "Williams" wa ni oju-iwe ti o penultimate ti iwọn didun, apakan pataki ti iwe naa. Mo kan n yipada nipasẹ itọka naa (kii ṣe itara bi o ti n dun, nitori pe awọn ẹyin Ọjọ ajinde Kristi wa ti o farapamọ sinu awọn atọka Knuth. Fun apẹẹrẹ, awọn titẹ sii ni ede Larubawa ati Heberu, mejeeji tọka si oju-iwe 66. Ṣugbọn oju-iwe yẹn ko mẹnuba. boya awọn ede; dipo o tọka si “awọn ede ti a ka lati ọtun si osi”). Ati awọn keji orukọ mu mi akiyesi. Niwọn igba ti Mo maa n ka Wikipedia, Mo ṣayẹwo Robin Williams ati ki o ṣe akiyesi iyatọ kan.
  3. Mo fẹ pe MO le sọ pe Mo ṣe iwadii pataki lati wa aṣiṣe itan kan, ṣugbọn looto Mo kan wo Oju-iwe Wikipedia nipa algorithm Karatsuba. Awọn laini akọkọ pupọ sọ pe: “Alugoridimu Karatsuba jẹ algorithm isodipupo iyara. Awari nipasẹ Anatoly Karatsuba ni 1960 ati ti a tẹjade ni ọdun 1962." Lẹhinna gbogbo nkan ti o ku ni lati fi meji ati meji kun.

Ni ojo iwaju Emi yoo fẹ lati wa kokoro pataki diẹ sii, pataki ni koodu Knuth. Emi yoo tun fẹ lati wa kokoro kan ni iwọn akọkọ ti Awọn alugoridimu Pataki. Boya Emi yoo ti rii, ṣugbọn fun idi kan ile-ikawe agbegbe nikan ni awọn iwọn 2, 3 ati 4A.

Awọn otitọ owo:

  • Ni apapọ, ilowosi mi si TAOCP ni awọn ohun kikọ mẹta nikan: afikun kan s, rirọpo m on n и 2 on 0. Ni $2,56, iwọnyi jẹ diẹ ninu awọn aami ti o wuyi; Ti o ba san iru owo yẹn, nkan kan ti awọn ọrọ 1000 (apapọ awọn ohun kikọ mẹrin) yoo gba ọ ni titobi mẹwa.
  • Pẹlu awọn dọla hexadecimal mẹta, Emi, pẹlu awọn ara ilu 29 miiran, ni a so fun aaye 69th lori atokọ ti awọn olufipamọ ọlọrọ julọ ti San Serriff Bank (bi ti May 1, 2019).

Miiran awọn ijiroro nipa sọwedowo lati Knuth

  • Bii o ṣe le ṣayẹwo lati Knuth

    Awọn iṣeduro gbogbogbo fun wiwa awọn aṣiṣe ninu awọn iwe Knuth. Pupọ julọ wọn kan awọn aṣiṣe imọ-ẹrọ, eyiti Emi ko ni. Imọran kan wa nibẹ ti Mo mu ni pataki:

    O dara julọ lati duro titi iwọ o fi gba akojọpọ awọn aṣiṣe lati fi silẹ. Nipa apapọ ọpọlọpọ gidi ṣugbọn kii ṣe awọn aṣiṣe ti o niyelori pupọ, o pọ si o ṣeeṣe pe ọkan ninu wọn yoo gba bi aṣiṣe tabi imọran. Ti o ba fi awọn aṣiṣe silẹ ni ẹẹkan, ọkọọkan le jẹ kọ.

    Emi ko fẹ lati fi o kan ọrọ isọkusọ typos, ṣugbọn gba awọn imọran ati ki o rán awọn lẹta nikan nigbati mo ri a itan aṣiṣe ti o dabi enipe pataki to.

  • Ashutosh Mehra ká sọwedowo

    Ashutosh Mehra jẹ oludokoowo ọlọla kẹta julọ ni San Serriff pẹlu apapọ iye owo 0x$207.f0 ni BoSS.

  • Ṣayẹwo fun diẹ ninu awọn idun ti kii ṣe iṣẹ ni koodu TeX gidi
  • Oriṣiriṣi: #1 #2 #3 #4 #5 #6

orisun: www.habr.com

Fi ọrọìwòye kun