{"id":34164,"date":"2019-10-31T21:56:44","date_gmt":"2019-10-31T18:56:44","guid":{"rendered":"https:\/\/prohoster.info\/blog\/ya-poluchil-ot-knuta-chek-na-0x-3-00\/"},"modified":"2019-10-31T21:56:44","modified_gmt":"2019-10-31T18:56:44","slug":"ya-poluchil-ot-knuta-chek-na-0x-3-00","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/news\/ya-poluchil-ot-knuta-chek-na-0x-3-00","title":{"rendered":"Ho ricevuto da Knut un assegno di 0x$3,00","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><b>Donald Knuth<\/b>\u00a0\u00e8 un accademico nel campo dell'informatica, che si preoccupa cos\u00ec tanto della correttezza dei suoi libri che offre <b>un dollaro esadecimale<\/b> ($2,56, 0x$1,00) per qualsiasi \"errore\" trovato, dove per errore si intende tutto ci\u00f2 che \u00e8 \"tecnicamente, storicamente, tipograficamente o politicamente scorretto\". Volevo davvero ricevere un assegno da Knuth, cos\u00ec ho deciso di cercare errori nella sua opera eccezionale <b>\"L'arte della programmazione\"<\/b> (TAOCP). Sono riuscito a trovarne tre. D'accordo con la parola, Knuth ha inviato un assegno per <b>0x$3,00<\/b>.<\/p>\n<p><img decoding=\"async\" alt=\"Ho ricevuto da Knut un assegno di 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/ea8c328c9f7f67d1e2c0d729268aca01.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCome puoi vedere, questo non \u00e8 un vero assegno. Un tempo Knuth inviava assegni veri, ma ha smesso nel 2008 a causa di <noindex><a rel=\"nofollow\" href=\"https:\/\/www-cs-faculty.stanford.edu\/~knuth\/news08.html\">frode sfrenata<\/a><\/noindex>. Ora invia \"certificati di deposito personali\" presso <noindex><a rel=\"nofollow\" href=\"https:\/\/www-cs-faculty.stanford.edu\/~knuth\/boss.html\">la banca San Seriffe<\/a><\/noindex> (BoSS). Dice che \u00e8 pronto a inviare denaro reale se necessario, ma sembra che sia troppo complicato.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nHo trovato due refusi e un errore storico. Li elencher\u00f2 in ordine di complessit\u00e0 decrescente.<\/p>\n<h1>Refuso n. 1<\/h1>\n<p>\nIl primo refuso si trova a pagina 392 del terzo volume \"Ordinamento e ricerca\", ottava riga dal fondo: \"Dopo una ricerca infruttuosa a volte (sometime) \u00e8 preferibile inserire nella tabella una nuova voce che contiene <i>K<\/i>; il metodo che fa questo si chiama algoritmo di ricerca e inserimento. L'errore \u00e8 che invece di <b><i>sometime<\/i><\/b> dovrebbe essere <b><i>sometimes<\/i><\/b>.<\/p>\n<p>Certo, non c'\u00e8 nulla di sorprendente in un errore del genere. Solo in questo articolo ci saranno sicuramente un paio di refusi (nessun premio per trovarli). Ci\u00f2 che \u00e8 davvero sorprendente \u00e8 quanto tempo ci sia voluto per notarli. La pagina 392 non \u00e8 sepolta profondamente nella sezione di matematica, \u00e8 <b>la prima pagina<\/b> del sesto capitolo \"Ricerca\"! Forse una delle sezioni pi\u00f9 lette del libro. Idealmente, l\u00ec ci dovrebbero essere il minor numero di refusi, ma non \u00e8 cos\u00ec.<\/p>\n<p>A proposito, se hai mai pensato di leggere TAOCP, prova. Molti diranno che \u00e8 <b>un manuale<\/b>, non destinato alla lettura diretta, ma non \u00e8 vero. L'autore ha una chiara visione e uno stile distintivo. L'unica cosa che ostacola la leggibilit\u00e0 \u00e8 la complessit\u00e0 della matematica. Tuttavia, c'\u00e8 una soluzione semplice: leggi finch\u00e9 non arrivi alla matematica che non comprendi, saltala e apri il prossimo capitolo che puoi comprendere. Leggendo in questo modo, salto almeno l'80% del libro, ma il restante 20% \u00e8 magnifico!<\/p>\n<p>Si dice anche che TAOCP <b>sia irrilevante<\/b>, obsoleta o in altro modo non applicabile alla \u00abprogrammazione reale\u00bb. Anche questo \u00e8 falso. Ad esempio, nella prima sezione dopo l'introduzione si tratta della ricerca di un elemento in un array non ordinato. L'algoritmo pi\u00f9 semplice \u00e8 conosciuto da tutti i programmatori. Avvia il puntatore all'inizio dell'array, quindi esegui i seguenti passaggi in un ciclo:<\/p>\n<ol>\n<li>Controlla se l'elemento attuale \u00e8 quello desiderato. Se s\u00ec, restituiscilo; altrimenti\n<\/li>\n<li>Controlla se il puntatore \u00e8 fuori dai limiti dell'array. Se s\u00ec, restituisci un errore; altrimenti\n<\/li>\n<li>Incrementa il puntatore e continua.<\/li>\n<\/ol>\n<p>\nOra consideriamo: quante verifiche dei limiti richiede in media questo algoritmo? Nel caso peggiore, quando l'array non contiene l'elemento, per ogni elemento della lista sar\u00e0 necessaria una verifica, e in media sar\u00e0 qualcosa del genere <img decoding=\"async\" alt=\"Ho ricevuto da Knut un assegno di 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/6c99f945807d8a8aeac1d42854c83295.jpg\" style=\"display:block;margin: 0 auto;\" \/>. Un algoritmo di ricerca pi\u00f9 intelligente pu\u00f2 richiedere solo una verifica dei limiti. Aggiungi l'elemento desiderato alla fine dell'array, quindi avvia il puntatore all'inizio dell'array e segui i seguenti passaggi in un ciclo:<\/p>\n<ol>\n<li>Controlla se l'elemento attuale \u00e8 quello desiderato. Se s\u00ec, restituisci la risposta se il puntatore \u00e8 all'interno dell'array, o un errore se non lo \u00e8. Altrimenti\n<\/li>\n<li>Incrementa il puntatore e continua.<\/li>\n<\/ol>\n<p>\nIn ogni caso, l'elemento sar\u00e0 sicuramente trovato, e la verifica dei limiti viene eseguita solo una volta, quando ci\u00f2 accade. \u00c8 un'idea profonda, ma \u00e8 abbastanza semplice anche per un programmatore principiante. Probabilmente non posso parlare della rilevanza del lavoro per gli altri, ma sono riuscito a applicare immediatamente questa saggezza sia nel codice personale che in quello professionale. Il libro TAOCP \u00e8 pieno di tali gemme (per essere giusti, ci sono anche molte cose strane, come <noindex><a rel=\"nofollow\" href=\"https:\/\/nickdrozd.github.io\/2018\/11\/02\/bubble.html\">l'ordinamento a bolle<\/a><\/noindex>).<\/p>\n<blockquote><p><i>\u00abCerca, cerca<br \/>\nTanto tempo fa<br \/>\nCerca, cerca<br \/>\nVolevo solo ballare\u00bb<\/i> <br \/>\n\u2014 Luther Vandross, \u00abCerca\u00bb (1980)<\/p><\/blockquote>\n<p><\/p>\n<h1>Refuso n. 2<\/h1>\n<p>\nIl secondo refuso \u00e8 nel volume 4A, \"Algoritmi combinatori\", parte 1. A pagina 60 viene descritta una questione riguardante la programmazione delle esibizioni dei comici in vari casin\u00f2. Come esempio vengono citati alcuni comici reali, tra cui Lily Tomlin, Weird Al Yankovic e Robin Williams, che era ancora vivo quando il libro \u00e8 stato pubblicato. Knuth include sempre i nomi completi nell'indice, quindi Williams \u00e8 menzionato a pagina 882 come \"Williams, Robin Mac-Laurin\". Ma il suo secondo nome finisce con \"n\" e non con \"m\", ovvero Mac-Laurin.<\/p>\n<p>Mac-Laurin \u00e8 il cognome da nubile di sua madre. Era bisnipote di Anselmo Giuseppe Mac-Laurin, 34\u00b0 governatore del Mississippi. Il suo mandato, evidentemente, non \u00e8 ricordato per nulla di buono. Dalla libro <noindex><a rel=\"nofollow\" href=\"https:\/\/books.google.com\/books?id=OvNjBAAAQBAJ&amp;pg=PA177&amp;lpg=PA177&amp;dq=anselm+mclaurin&amp;source=bl&amp;ots=kPu_kLXUrz&amp;sig=ACfU3U2UKRAmJyH_dVfcb2tfSmzYemEgTw&amp;hl=en&amp;sa=X&amp;ved=2ahUKEwjTl9vvroDiAhVHI6wKHfCTC6I4MhDoATADegQICRAB#v=onepage&amp;q&amp;f=false\">\"Mississippi: storia\"<\/a><\/noindex>:<\/p>\n<blockquote><p><i>\"L'evento pi\u00f9 importante durante l'amministrazione di Mac-Laurin fu la dichiarazione di guerra della Repubblica degli Stati Uniti contro la Spagna nella primavera del 1898... Sfortunatamente, la guerra potrebbe aver dato a alcuni funzionari statali l'opportunit\u00e0 di praticare corruzione. Mac-Laurin fu accusato di varie pratiche dubbie, tra cui il nepotismo e un uso eccessivo dei poteri di grazia. Durante l'epoca del movimento per la sobriet\u00e0, i critici accusarono il governatore di ubriachezza, cosa che egli ammise pubblicamente.\"<\/i><\/p><\/blockquote>\n<p><\/p>\n<h1>Errore storico<\/h1>\n<p>\nConsideriamo <b>l'algoritmo tradizionale della moltiplicazione<\/b> dalla programma scolastica. Quante operazioni di moltiplicazione a cifra singola richiede? Supponiamo che tu stia moltiplicando <img decoding=\"async\" alt=\"Ho ricevuto da Knut un assegno di 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/d15239ad41c6fc6953641760f9ffcfdd.jpg\" style=\"display:block;margin: 0 auto;\" \/>-un numero a <img decoding=\"async\" alt=\"Ho ricevuto da Knut un assegno di 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/b731d35571751cec684ca767411a023d.jpg\" style=\"display:block;margin: 0 auto;\" \/> in <img decoding=\"async\" alt=\"Ho ricevuto da Knut un assegno di 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/c1f7221e05cbca33ff54da5b6f665dd2.jpg\" style=\"display:block;margin: 0 auto;\" \/>-cifre <img decoding=\"async\" alt=\"Ho ricevuto da Knut un assegno di 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/390eee500fc99f74a2252db0b3ba6fe4.jpg\" style=\"display:block;margin: 0 auto;\" \/>. Prima moltiplichi la prima cifra <img decoding=\"async\" alt=\"Ho ricevuto da Knut un assegno di 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/8d4db48caef1e8cceac94ae2fca4fc24.jpg\" style=\"display:block;margin: 0 auto;\" \/> per ogni cifra <img decoding=\"async\" alt=\"Ho ricevuto da Knut un assegno di 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/dccbe5f9c5f2fe9bd3538f567e2bb214.jpg\" style=\"display:block;margin: 0 auto;\" \/> a turno. Poi moltiplichi la seconda cifra <img decoding=\"async\" alt=\"Ho ricevuto da Knut un assegno di 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/b76bfeb3fb4f60f9f1ac66dcb937f736.jpg\" style=\"display:block;margin: 0 auto;\" \/> per ogni cifra <img decoding=\"async\" alt=\"Ho ricevuto da Knut un assegno di 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/bbe37fb224a8e6115872a2b2cdefa26e.jpg\" style=\"display:block;margin: 0 auto;\" \/> a turno e cos\u00ec via, fino a quando non hai trattato tutte le cifre <img decoding=\"async\" alt=\"Ho ricevuto da Knut un assegno di 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/df227a29c1bc24a1c7cbf9269c764b21.jpg\" style=\"display:block;margin: 0 auto;\" \/>. In questo modo, la moltiplicazione tradizionale richiede <img decoding=\"async\" alt=\"Ho ricevuto da Knut un assegno di 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/f0c5ea2abdccff4a5b92fd1c70706d21.jpg\" style=\"display:block;margin: 0 auto;\" \/> moltiplicazioni primitive. In particolare, moltiplicare due numeri di <img decoding=\"async\" alt=\"Ho ricevuto da Knut un assegno di 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/f609965f49d095d59264e127f6db0e64.jpg\" style=\"display:block;margin: 0 auto;\" \/> cifre richiede <img decoding=\"async\" alt=\"Ho ricevuto da Knut un assegno di 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/fb16f262bc1b872f6e8c003be2efe2d8.jpg\" style=\"display:block;margin: 0 auto;\" \/> moltiplicazioni a cifra singola.<\/p>\n<p>Questo \u00e8 negativo, ma \u00e8 possibile ottimizzare il processo con il metodo sviluppato dal matematico sovietico Anatoly Alexeyevich Karatsuba. Supponiamo che <img decoding=\"async\" alt=\"Ho ricevuto da Knut un assegno di 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/3f42481650d00fe8cf1083be9479958f.jpg\" style=\"display:block;margin: 0 auto;\" \/> e <img decoding=\"async\" alt=\"Ho ricevuto da Knut un assegno di 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/756872cc2c490be54640606bba6cb8c7.jpg\" style=\"display:block;margin: 0 auto;\" \/>\u00a0siano numeri decimali a due cifre; cio\u00e8 ci sono numeri <img decoding=\"async\" alt=\"Ho ricevuto da Knut un assegno di 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/4f1f27cc95638aab9f6836f809b42cc1.jpg\" style=\"display:block;margin: 0 auto;\" \/>, <img decoding=\"async\" alt=\"Ho ricevuto da Knut un assegno di 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/0192ac28c89bfd24a20a1fc1b06ce1a6.jpg\" style=\"display:block;margin: 0 auto;\" \/>, <img decoding=\"async\" alt=\"Ho ricevuto da Knut un assegno di 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/bebb062d37ca6e82ce30589b5f790a0f.jpg\" style=\"display:block;margin: 0 auto;\" \/>, <img decoding=\"async\" alt=\"Ho ricevuto da Knut un assegno di 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/907b83653f451f4a861109f2244b175a.jpg\" style=\"display:block;margin: 0 auto;\" \/> tali che <img decoding=\"async\" alt=\"Ho ricevuto da Knut un assegno di 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/22b668162b9e64b9aba33d5fe475d65b.jpg\" style=\"display:block;margin: 0 auto;\" \/> e <img decoding=\"async\" alt=\"Ho ricevuto da Knut un assegno di 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/3a226e2600b99ec92d37b7acfbd63d20.jpg\" style=\"display:block;margin: 0 auto;\" \/> (generalizzare questo algoritmo a numeri pi\u00f9 grandi richiede alcune manovre; anche se non \u00e8 troppo complicato, per non sbagliare nei dettagli, preferisco rimanere su un esempio semplice). Allora <img decoding=\"async\" alt=\"Ho ricevuto da Knut un assegno di 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/a3a658b41241bf40a1f0e779527b3eb2.jpg\" style=\"display:block;margin: 0 auto;\" \/>, <img decoding=\"async\" alt=\"Ho ricevuto da Knut un assegno di 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/bf8e1b283d1cfa76314380b74b308b38.jpg\" style=\"display:block;margin: 0 auto;\" \/>, <img decoding=\"async\" alt=\"Ho ricevuto da Knut un assegno di 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/69c922747089f3affb9d640910047a41.jpg\" style=\"display:block;margin: 0 auto;\" \/>. La moltiplicazione di binomi d\u00e0 <img decoding=\"async\" alt=\"Ho ricevuto da Knut un assegno di 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/274f90358c358641db7ccb2bda5896b1.jpg\" style=\"display:block;margin: 0 auto;\" \/>. Fino a questo punto abbiamo ancora <img decoding=\"async\" alt=\"Ho ricevuto da Knut un assegno di 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/be0a72ca4a77d7c710b99741619c4492.jpg\" style=\"display:block;margin: 0 auto;\" \/> moltiplicazioni a cifra singola: <img decoding=\"async\" alt=\"Ho ricevuto da Knut un assegno di 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/10af5b0ea33a7df7bceb34de5757ba5d.jpg\" style=\"display:block;margin: 0 auto;\" \/>, <img decoding=\"async\" alt=\"Ho ricevuto da Knut un assegno di 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/66919878cca7db5c80eca9e89c2bca13.jpg\" style=\"display:block;margin: 0 auto;\" \/>, <img decoding=\"async\" alt=\"Ho ricevuto da Knut un assegno di 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/c9987bea5bc2a1fb928ef2c60bf880fb.jpg\" style=\"display:block;margin: 0 auto;\" \/>, <img decoding=\"async\" alt=\"Ho ricevuto da Knut un assegno di 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/c6136863142c02a1b6ba260f02544c0c.jpg\" style=\"display:block;margin: 0 auto;\" \/>. Ora sommiamo e sottraiamo <img decoding=\"async\" alt=\"Ho ricevuto da Knut un assegno di 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/1e9707de3bac2233c9343d2d95d5d1bb.jpg\" style=\"display:block;margin: 0 auto;\" \/>. Dopo diversi scambi, che lascer\u00f2 come esercizio per il lettore, si ottiene <img decoding=\"async\" alt=\"Ho ricevuto da Knut un assegno di 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/9015c02c113b58d67e73013fea4ce9dd.jpg\" style=\"display:block;margin: 0 auto;\" \/>\u00a0\u2014 solo tre moltiplicazioni a una cifra! (Ci sono alcuni coefficienti fissi, ma possono essere calcolati solo tramite somma e spostamento delle cifre).<\/p>\n<p>Non chiedere prove, ma <b>l'algoritmo di Karatsuba<\/b> (generalizzato ricorsivamente dall'esempio sopra) migliora il metodo tradizionale di moltiplicazione da <img decoding=\"async\" alt=\"Ho ricevuto da Knut un assegno di 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/99577e368b573f762034767d5af05032.jpg\" style=\"display:block;margin: 0 auto;\" \/> operazioni a <img decoding=\"async\" alt=\"Ho ricevuto da Knut un assegno di 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/df139625f074f236e50343ecf5f2021a.jpg\" style=\"display:block;margin: 0 auto;\" \/>. Si noti che questo \u00e8 un reale miglioramento dell'algoritmo e non un'ottimizzazione per i calcoli mentali. Infatti, l'algoritmo non \u00e8 adatto per il calcolo mentale, poich\u00e9 richiede un notevole overhead per le operazioni ricorsive. Inoltre, l'effetto si manifester\u00e0 completamente solo quando i numeri diventeranno sufficientemente grandi (fortunatamente, al posto dell'algoritmo di Karatsuba sono arrivati metodi ancora pi\u00f9 veloci: a marzo 2019 \u00e8 stato pubblicato un algoritmo che richiede solo <noindex><a rel=\"nofollow\" href=\"https:\/\/web.maths.unsw.edu.au\/~davidharvey\/papers\/nlogn\/\"><i>n log n<\/i><\/a><\/noindex> moltiplicazioni; l'accelerazione \u00e8 applicabile solo ai numeri inimmaginabilmente grandi).<\/p>\n<p>Questo algoritmo \u00e8 descritto a pagina 295 del secondo volume di \u00abAlgoritmi Semiconvertibili\u00bb. L\u00ec Knuth scrive: \u00abCuriosamente, questa idea \u00e8 stata scoperta solo nel <b>1962<\/b> anno\u00bb, quando \u00e8 stato pubblicato un articolo che descrive l'algoritmo di Karatsuba. Ma! Nel 1995 Karatsuba ha pubblicato un articolo \u00abLa complessit\u00e0 dei calcoli\u00bb, in cui dice alcune cose: 1) intorno al 1956, Kolmogorov ha ipotizzato che la moltiplicazione non possa essere effettuata in meno di <img decoding=\"async\" alt=\"Ho ricevuto da Knut un assegno di 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/87c650ae7cb55d5b5cd1f7d440cadbee.jpg\" style=\"display:block;margin: 0 auto;\" \/> passi; 2) nel <b>1960<\/b> anno Karatsuba era presente a un seminario in cui Kolmogorov ha esposto la sua ipotesi n\u00b2. 3) \u00abEsattamente una settimana\u00bb Karatsuba ha sviluppato l'algoritmo \u00abdivide et impera\u00bb; 4) nel 1962 Kolmogorov ha scritto e pubblicato un articolo <i>a nome di Karatsuba<\/i> con la descrizione dell'algoritmo. \u00abHo saputo di questo articolo solo dopo che \u00e8 stato ripubblicato\u00bb.<\/p>\n<p>Quindi, l'errore \u00e8 che invece di <i>1962<\/i> dovrebbe essere indicato <i>1960<\/i> l'anno. Questo \u00e8 tutto.<\/p>\n<h1>Analisi<\/h1>\n<p>\n<b>La ricerca degli errori non richiedeva particolare abilit\u00e0.<\/b><\/p>\n<ol>\n<li>Il primo errore era cos\u00ec banale che era possibile e si trovava in una posizione relativamente evidente (all'inizio del capitolo). Qualsiasi idiota l'avrebbe trovato; semplicemente io sono stato quell'idiota.\n<\/li>\n<li>La ricerca del secondo refuso richiedeva fortuna e impegno, ma non abilit\u00e0. L'indice per \"Williams\" si trova sulla penultima pagina del volume, una parte piuttosto evidente del libro. Stavo proprio sfogliando l'indice (non \u00e8 cos\u00ec male come sembra, perch\u00e9 negli indici di Knuth ci sono uova di pasqua nascoste. Ad esempio, ci sono voci in arabo ed ebraico, e entrambe indicano pagina 66. Ma in quella pagina non viene menzionata nessuna delle lingue; viene invece menzionata \"languaggi che si leggono da destra a sinistra\"). E la mia attenzione \u00e8 stata attratta dal secondo nome. Poich\u00e9 leggo spesso Wikipedia, ho controllato Robin Williams e ho notato una discrepanza.\n<\/li>\n<li>Vorrei poter dire che ho condotto una seria ricerca per trovare un errore storico, ma in realt\u00e0 ho semplicemente guardato <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Karatsuba_algorithm\">la pagina di Wikipedia sull'algoritmo di Karatsuba<\/a><\/noindex>. Nelle prime righe si legge: \"L'algoritmo di Karatsuba \u00e8 un algoritmo di moltiplicazione rapida. Scoperto da Anatolij Karatsuba nel 1960 e pubblicato nel 1962\". Dopo di che, rimaneva solo da sommare due pi\u00f9 due.<\/li>\n<\/ol>\n<p>\nIn futuro vorrei trovare un errore pi\u00f9 sostanziale, specialmente nel codice di Knuth. Vorrei anche trovare un bug nel primo volume \"Algoritmi fondamentali\". Forse l'avrei trovato, ma nella biblioteca locale, per qualche motivo, ci sono solo i volumi 2, 3 e 4A.<\/p>\n<p><b>Fatti finanziari:<\/b><\/p>\n<ul>\n<li>In totale, il mio contributo a TAOCP consiste solo in tre simboli: un'aggiunta <i>s<\/i>, una sostituzione <i>m<\/i> in <i>n<\/i> e <i>2<\/i> in <i>0<\/i>. Al prezzo di $2,56, sono simboli piuttosto redditizi; se ti pagando tali somme, un articolo di 1000 parole (in media, circa quattro simboli) ti darebbe dieci pezzi.\n<\/li>\n<li>Con tre dollari e sedici centesimi, insieme ad altri 29 cittadini, condivido il 69\u00b0 posto nella lista dei pi\u00f9 ricchi investitori della banca San Seriff (a partire dal 1 maggio 2019).<\/li>\n<\/ul>\n<h1>Altre discussioni sui controlli di Knuth<\/h1>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/kevinlawler.com\/knuth\">Come ottenere un controllo da Knuth<\/a><\/noindex>\n<p>Raccomandazioni generali per la ricerca di errori nei libri di Knuth. Riguardano principalmente errori tecnici, che non ho. C'\u00e8 una frase che ho preso sul serio:<\/p>\n<blockquote><p>\u00c8 meglio aspettare di raccogliere un insieme di errori da inviare. Combinando alcuni errori reali, ma non molto significativi, aumenterai la possibilit\u00e0 che uno di essi venga effettivamente considerato un errore o un consiglio. Se invii errori uno per uno, ognuno pu\u00f2 essere rifiutato singolarmente.<\/p><\/blockquote>\n<p>\nNon volevo inviare semplici errori insignificanti, ma ho seguito il consiglio e ho inviato la lettera solo quando ho trovato un errore storico che mi \u00e8 sembrato abbastanza serio.\n<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/ashutoshmehra.net\/blog\/about\/knuth-reward-checks-and-certificates\/\">Asciutto Ashot Mushra<\/a><\/noindex>\n<p>Ashot Mushra \u00e8 il terzo investitore pi\u00f9 ricco di San-Serriff con un patrimonio colossale di 0x$207,f0 in BoSS.\n<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/www.truetex.com\/knuthchk.htm\">Ricevuta per alcuni errori non funzionali nel codice reale di TeX<\/a><\/noindex>\n<\/li>\n<li>Varie: <noindex><a rel=\"nofollow\" href=\"http:\/\/ed-thelen.org\/KnuthCheck.html\">#1<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"http:\/\/www.club.cc.cmu.edu\/~ajo\/knuth-check.html\">#2<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"http:\/\/joaoff.com\/2008\/02\/25\/a-reward-check-from-donald-knuth\/\">#3<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/www.quora.com\/What-is-it-like-to-receive-a-Knuth-reward-check\">#4<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"http:\/\/www.joshwakefield.com\/knuth\/\">#5<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"http:\/\/www.righto.com\/2011\/05\/my-knuth-reward-check.html\">#6<\/a><\/noindex><\/li>\n<\/ul>\n<p>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/452812\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0414\u043e\u043d\u0430\u043b\u044c\u0434 \u041a\u043d\u0443\u0442\u00a0\u2014 \u0443\u0447\u0451\u043d\u044b\u0439 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0431\u043e\u0442\u0438\u0442\u0441\u044f \u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0441\u0432\u043e\u0438\u0445 \u043a\u043d\u0438\u0433, \u0447\u0442\u043e \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u043e\u0434\u0438\u043d \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043d\u044b\u0439 \u0434\u043e\u043b\u043b\u0430\u0440 ($2,56, 0x$1,00) \u0437\u0430 \u043b\u044e\u0431\u0443\u044e \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u0443\u044e \u00ab\u043e\u0448\u0438\u0431\u043a\u0443\u00bb, \u0433\u0434\u0435 \u043e\u0448\u0438\u0431\u043a\u043e\u0439 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0432\u0441\u0451, \u0447\u0442\u043e \u00ab\u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438, \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438, \u0442\u0438\u043f\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438 \u0438\u043b\u0438 \u043f\u043e\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u00bb. \u042f \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0442\u0435\u043b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0447\u0435\u043a \u043e\u0442 \u041a\u043d\u0443\u0442\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0440\u0435\u0448\u0438\u043b \u043f\u043e\u0438\u0441\u043a\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 \u0435\u0433\u043e \u0432\u044b\u0434\u0430\u044e\u0449\u0435\u043c\u0441\u044f \u0442\u0440\u0443\u0434\u0435 \u00ab\u0418\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\u00bb (TAOCP). \u0423\u0434\u0430\u043b\u043e\u0441\u044c \u043d\u0430\u0439\u0442\u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":25780,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-34164","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0414\u043e\u043d\u0430\u043b\u044c\u0434 \u041a\u043d\u0443\u0442 \u2014 \u0443\u0447\u0451\u043d\u044b\u0439 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0431\u043e\u0442\u0438\u0442\u0441\u044f \u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0441\u0432\u043e\u0438\u0445 \u043a\u043d\u0438\u0433, \u0447\u0442\u043e \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u043e\u0434\u0438\u043d \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043d\u044b\u0439 \u0434\u043e\u043b\u043b\u0430\u0440 ($2,56, 0x$1,00) \u0437\u0430 \u043b\u044e\u0431\u0443\u044e \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u0443\u044e \u00ab\u043e\u0448\u0438\u0431\u043a\u0443\u00bb, \u0433\u0434\u0435 \u043e\u0448\u0438\u0431\u043a\u043e\u0439.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/it\/blog\/news\/ya-poluchil-ot-knuta-chek-na-0x-3-00\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u042f \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u043e\u0442 \u041a\u043d\u0443\u0442\u0430 \u0447\u0435\u043a \u043d\u0430 0x$3,00 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0414\u043e\u043d\u0430\u043b\u044c\u0434 \u041a\u043d\u0443\u0442 \u2014 \u0443\u0447\u0451\u043d\u044b\u0439 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0431\u043e\u0442\u0438\u0442\u0441\u044f \u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0441\u0432\u043e\u0438\u0445 \u043a\u043d\u0438\u0433, \u0447\u0442\u043e \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u043e\u0434\u0438\u043d \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043d\u044b\u0439 \u0434\u043e\u043b\u043b\u0430\u0440 ($2,56, 0x$1,00) \u0437\u0430 \u043b\u044e\u0431\u0443\u044e \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u0443\u044e \u00ab\u043e\u0448\u0438\u0431\u043a\u0443\u00bb, \u0433\u0434\u0435 \u043e\u0448\u0438\u0431\u043a\u043e\u0439.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/news\/ya-poluchil-ot-knuta-chek-na-0x-3-00\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:56:44+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:56:44+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Ho ricevuto da Knuth un assegno di 0x$3,00 | ProHoster","description":"Donald Knuth \u00e8 un accademico nel campo dell'informatica, che si preoccupa cos\u00ec tanto della correttezza dei suoi libri, che offre un dollaro esadecimale ($2,56, 0x$1,00) per ogni \"errore\" trovato.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/news\/ya-poluchil-ot-knuta-chek-na-0x-3-00","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u042f \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u043e\u0442 \u041a\u043d\u0443\u0442\u0430 \u0447\u0435\u043a \u043d\u0430 0x$3,00 | ProHoster","og:description":"\u0414\u043e\u043d\u0430\u043b\u044c\u0434 \u041a\u043d\u0443\u0442 \u2014 \u0443\u0447\u0451\u043d\u044b\u0439 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0431\u043e\u0442\u0438\u0442\u0441\u044f \u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0441\u0432\u043e\u0438\u0445 \u043a\u043d\u0438\u0433, \u0447\u0442\u043e \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u043e\u0434\u0438\u043d \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043d\u044b\u0439 \u0434\u043e\u043b\u043b\u0430\u0440 ($2,56, 0x$1,00) \u0437\u0430 \u043b\u044e\u0431\u0443\u044e \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u0443\u044e \u00ab\u043e\u0448\u0438\u0431\u043a\u0443\u00bb, \u0433\u0434\u0435 \u043e\u0448\u0438\u0431\u043a\u043e\u0439.","og:url":"https:\/\/prohoster.info\/it\/blog\/news\/ya-poluchil-ot-knuta-chek-na-0x-3-00","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:56:44+00:00","article:modified_time":"2019-10-31T18:56:44+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"34164","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 18:10:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:27:29","updated":"2026-01-21 18:10:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/34164","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=34164"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/34164\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/25780"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=34164"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=34164"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=34164"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}