{"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\/nl\/blog\/news\/ya-poluchil-ot-knuta-chek-na-0x-3-00","title":{"rendered":"Ik heb van Knuth een cheque ontvangen voor 0x$3,00","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><b>Donald Knuth<\/b>\u00a0is een wetenschapper op het gebied van informatica die zo veel geeft om de nauwkeurigheid van zijn boeken dat hij aanbiedt <b>\u00e9\u00e9n hexadecimaal dollar<\/b> ($2,56, 0x$1,00) voor elke gevonden 'fout', waarbij een fout alles is wat 'technisch, historisch, typografisch of politiek onjuist' is. Ik wilde heel graag een cheque van Knuth krijgen, dus besloot ik fouten te zoeken in zijn uitstekende werk <b>\"The Art of Computer Programming\"<\/b> (TAOCP). Ik vond er drie. Getrouwd aan zijn woord, stuurde Knuth een cheque ter waarde van <b>0x$3,00<\/b>.<\/p>\n<p><img decoding=\"async\" alt=\"Ik heb van Knuth een cheque ontvangen voor 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/ea8c328c9f7f67d1e2c0d729268aca01.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZoals je ziet, is dit geen echte cheque. Vroeger stuurde Knuth echte cheques, maar hij is daar in 2008 mee gestopt vanwege <noindex><a rel=\"nofollow\" href=\"https:\/\/www-cs-faculty.stanford.edu\/~knuth\/news08.html\">ongekend bedrog<\/a><\/noindex>. Nu verstuurt hij 'persoonlijke deposito certificaten' bij <noindex><a rel=\"nofollow\" href=\"https:\/\/www-cs-faculty.stanford.edu\/~knuth\/boss.html\">de San Serif bank<\/a><\/noindex> (BoSS). Hij zegt dat hij bereid is echte geld te sturen als dat nodig is, maar het lijkt te veel gedoe.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nIk vond twee typfouten en \u00e9\u00e9n historische fout. Ik zal ze opsommen in volgorde van afnemende trivialiteit.<\/p>\n<h1>Typfout #1<\/h1>\n<p>\nDe eerste typfout staat op pagina 392 van deel drie \"Sorteren en zoeken\", achtste regel van onder: \"Na een mislukte zoekopdracht is het soms (sometime) wenselijk om een nieuwe invoer in de tabel te plaatsen, die <i>K<\/i>; de methode die dit doet, wordt het zoek- en invoegalgoritme genoemd. De fout is dat in plaats van <b><i>sometime<\/i><\/b> het moet zijn <b><i>sometimes<\/i><\/b>.<\/p>\n<p>Natuurlijk is er niets verrassends aan zo'n fout. In dit artikel zijn ongetwijfeld een paar typfouten te vinden (geen beloningen voor het vinden ervan). Wat eigenlijk verrassend is, is dat het zo lang niet opgemerkt is. Pagina 392 ligt niet diep verborgen in het wiskundedeel, dit is <b>de allereerste pagina<\/b> van hoofdstuk zes \"Zoeken\"! Misschien wel een van de meest gelezen secties van het boek. In theorie zouden er daar het minste typfouten moeten zijn, maar nee.<\/p>\n<p>Overigens, als je ooit hebt gedacht om TAOCP te lezen, probeer het. Veel mensen zullen zeggen dat het een <b>naslagwerk<\/b>, dat niet bedoeld is om rechtstreekse leeservaring te bieden, maar dat is onjuist. De auteur heeft een duidelijke opvatting en een unieke stijl. Het enige dat de leesbaarheid belemmert, is de complexiteit van de wiskunde. Er is echter een eenvoudige oplossing: lees totdat je bij de wiskunde komt die je niet begrijpt, sla die over en ga naar de volgende sectie die je kan begrijpen. Op deze manier sla ik minstens 80% van het boek over, maar de resterende 20% is prachtig!<\/p>\n<p>Er wordt ook gezegd dat TAOCP <b>irrelevant is<\/b>, verouderd of op een andere manier niet toepasselijk voor 'echte programmering'. Dit is ook niet waar. Bijvoorbeeld, in het eerste gedeelte na de inleiding wordt het zoeken van een element in een niet-gesorteerde array behandeld. Het eenvoudigste algoritme is bekend bij alle programmeurs. Start de pointer aan het begin van de array, voer vervolgens de volgende stappen in een lus uit:<\/p>\n<ol>\n<li>Controleer of het huidige element het gewenste is. Als dat zo is, geven we het terug; zo niet,\n<\/li>\n<li>Controleer of de pointer buiten de array ligt. Als dat zo is, geven we een foutmelding; zo niet,\n<\/li>\n<li>Verhoog de pointer en ga verder.<\/li>\n<\/ol>\n<p>\nLaten we nu overwegen: hoeveel grenscontroles vereist dit algoritme gemiddeld? In het slechtste geval, wanneer de array het element niet bevat, is er voor elk element in de lijst \u00e9\u00e9n controle nodig, en gemiddeld is dit ongeveer <img decoding=\"async\" alt=\"Ik heb van Knuth een cheque ontvangen voor 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/6c99f945807d8a8aeac1d42854c83295.jpg\" style=\"display:block;margin: 0 auto;\" \/>. Een slimmer zoekalgoritme kan maar \u00e9\u00e9n grenscontrole vereisen. Hang het gewenste element aan het einde van de array, start vervolgens de pointer aan het begin van de array en voer de volgende stappen in een lus uit:<\/p>\n<ol>\n<li>Controleer of het huidige element het gewenste is. Als dat zo is, geven we het antwoord terug als de pointer binnen de array ligt, of een foutmelding als dat niet het geval is. Zo niet,\n<\/li>\n<li>Verhoog de pointer en ga verder.<\/li>\n<\/ol>\n<p>\nHoe dan ook, het element zal gegarandeerd worden gevonden, en de grenscontrole wordt maar \u00e9\u00e9n keer uitgevoerd als dat gebeurt. Dit is een diep idee, maar het is eenvoudig genoeg, zelfs voor een beginnende programmeur. Ik kan misschien niet over de relevantie van dit werk voor anderen spreken, maar ik slaagde er meteen in om deze wijsheid toe te passen, zowel in persoonlijke als professionele code. Het boek TAOCP zit vol met zulke parels (om eerlijk te zijn, er zijn ook veel vreemde dingen, zoals <noindex><a rel=\"nofollow\" href=\"https:\/\/nickdrozd.github.io\/2018\/11\/02\/bubble.html\">bubbel sortering<\/a><\/noindex>).<\/p>\n<blockquote><p><i>\"Zoeken, zoeken<br \/>\nZo lang<br \/>\nZoeken, zoeken<br \/>\nIk wilde gewoon dansen\"<\/i> <br \/>\n\u2014 Luther Vandross, \"Zoeken\" (1980)<\/p><\/blockquote>\n<p><\/p>\n<h1>Typfout #2<\/h1>\n<p>\nDe tweede fout is in deel 4A, \"Combinatorische algoritmen\", deel 1. Op pagina 60 wordt een probleem beschreven over het plannen van optredens van komieken in verschillende casino's. Ter illustratie worden verschillende echte komieken genoemd, waaronder Lily Tomlin, Weird Al Yankovic en Robin Williams, die nog in leven was toen het boek uitkwam. Knuth vermeldt altijd volledige namen in de index, dus Williams wordt op pagina 882 genoemd als \"Williams, Robin McLaurin\". Maar zijn tweede naam eindigt op \"n\" en niet op \"m\", dat wil zeggen McLaurin.<\/p>\n<p>McLaurin is de meisjesnaam van zijn moeder. Zij was de achterkleindochter van Anselm Joseph McLaurin, de 34ste gouverneur van Mississippi. Zijn regeerperiode staat duidelijk niet bekend om iets goeds. Uit het boek <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: een geschiedenis\"<\/a><\/noindex>:<\/p>\n<blockquote><p><i>\"Het belangrijkste evenement tijdens de administratie van McLaurin was de verklaring van de Verenigde Staten van oorlog aan Spanje in het voorjaar van 1898... Helaas gaf de oorlog mogelijk sommige overheidsofficials de kans om corruptie te praktiseren. McLaurin werd beschuldigd van verschillende dubieuze praktijken, waaronder nepotisme en buitensporig gebruik van gratiebevoegdheden. In de tijd van de temperancebeweging beschuldigden critici de gouverneur van dronkenschap, wat hij publiekelijk erkende.\"<\/i><\/p><\/blockquote>\n<p><\/p>\n<h1>Historische fout<\/h1>\n<p>\nBinnen kun je wat informatie zien met behulp van de functie <b>traditioneel vermenigvuldigingsalgoritme<\/b> uit het schoolcurriculum. Hoeveel eencijferige vermenigvuldigingen vereist het? Laten we veronderstellen dat je <img decoding=\"async\" alt=\"Ik heb van Knuth een cheque ontvangen voor 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/d15239ad41c6fc6953641760f9ffcfdd.jpg\" style=\"display:block;margin: 0 auto;\" \/>-cijfergetal <img decoding=\"async\" alt=\"Ik heb van Knuth een cheque ontvangen voor 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/b731d35571751cec684ca767411a023d.jpg\" style=\"display:block;margin: 0 auto;\" \/> en een werkende opdracht krijgen. <img decoding=\"async\" alt=\"Ik heb van Knuth een cheque ontvangen voor 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/c1f7221e05cbca33ff54da5b6f665dd2.jpg\" style=\"display:block;margin: 0 auto;\" \/>-cijfer <img decoding=\"async\" alt=\"Ik heb van Knuth een cheque ontvangen voor 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/390eee500fc99f74a2252db0b3ba6fe4.jpg\" style=\"display:block;margin: 0 auto;\" \/>. Eerst vermenigvuldig je de eerste cijfer <img decoding=\"async\" alt=\"Ik heb van Knuth een cheque ontvangen voor 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/8d4db48caef1e8cceac94ae2fca4fc24.jpg\" style=\"display:block;margin: 0 auto;\" \/> met elk cijfer <img decoding=\"async\" alt=\"Ik heb van Knuth een cheque ontvangen voor 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/dccbe5f9c5f2fe9bd3538f567e2bb214.jpg\" style=\"display:block;margin: 0 auto;\" \/> om beurten. Vervolgens vermenigvuldig je het tweede cijfer <img decoding=\"async\" alt=\"Ik heb van Knuth een cheque ontvangen voor 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/b76bfeb3fb4f60f9f1ac66dcb937f736.jpg\" style=\"display:block;margin: 0 auto;\" \/> met elk cijfer <img decoding=\"async\" alt=\"Ik heb van Knuth een cheque ontvangen voor 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/bbe37fb224a8e6115872a2b2cdefa26e.jpg\" style=\"display:block;margin: 0 auto;\" \/> om beurten en ga zo door, totdat je alle cijfers hebt doorlopen <img decoding=\"async\" alt=\"Ik heb van Knuth een cheque ontvangen voor 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/df227a29c1bc24a1c7cbf9269c764b21.jpg\" style=\"display:block;margin: 0 auto;\" \/>. Zo vereist traditionele vermenigvuldiging <img decoding=\"async\" alt=\"Ik heb van Knuth een cheque ontvangen voor 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/f0c5ea2abdccff4a5b92fd1c70706d21.jpg\" style=\"display:block;margin: 0 auto;\" \/> primitieve vermenigvuldigingen. In het bijzonder vereist het vermenigvuldigen van twee getallen van <img decoding=\"async\" alt=\"Ik heb van Knuth een cheque ontvangen voor 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/f609965f49d095d59264e127f6db0e64.jpg\" style=\"display:block;margin: 0 auto;\" \/> cijfers <img decoding=\"async\" alt=\"Ik heb van Knuth een cheque ontvangen voor 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/fb16f262bc1b872f6e8c003be2efe2d8.jpg\" style=\"display:block;margin: 0 auto;\" \/> eencijferige vermenigvuldigingen.<\/p>\n<p>Dat is slecht, maar het proces kan worden geoptimaliseerd met behulp van een methode ontwikkeld door de Sovjet-wiskundige Anatoli Alexejevitsj Karatsuba. Laten we veronderstellen dat <img decoding=\"async\" alt=\"Ik heb van Knuth een cheque ontvangen voor 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/3f42481650d00fe8cf1083be9479958f.jpg\" style=\"display:block;margin: 0 auto;\" \/> en <img decoding=\"async\" alt=\"Ik heb van Knuth een cheque ontvangen voor 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/756872cc2c490be54640606bba6cb8c7.jpg\" style=\"display:block;margin: 0 auto;\" \/>\u00a0-tweecijferige decimale getallen zijn; dat wil zeggen, er bestaan getallen <img decoding=\"async\" alt=\"Ik heb van Knuth een cheque ontvangen voor 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/4f1f27cc95638aab9f6836f809b42cc1.jpg\" style=\"display:block;margin: 0 auto;\" \/>, <img decoding=\"async\" alt=\"Ik heb van Knuth een cheque ontvangen voor 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/0192ac28c89bfd24a20a1fc1b06ce1a6.jpg\" style=\"display:block;margin: 0 auto;\" \/>, <img decoding=\"async\" alt=\"Ik heb van Knuth een cheque ontvangen voor 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/bebb062d37ca6e82ce30589b5f790a0f.jpg\" style=\"display:block;margin: 0 auto;\" \/>, <img decoding=\"async\" alt=\"Ik heb van Knuth een cheque ontvangen voor 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/907b83653f451f4a861109f2244b175a.jpg\" style=\"display:block;margin: 0 auto;\" \/> zodat <img decoding=\"async\" alt=\"Ik heb van Knuth een cheque ontvangen voor 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/22b668162b9e64b9aba33d5fe475d65b.jpg\" style=\"display:block;margin: 0 auto;\" \/> en <img decoding=\"async\" alt=\"Ik heb van Knuth een cheque ontvangen voor 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/3a226e2600b99ec92d37b7acfbd63d20.jpg\" style=\"display:block;margin: 0 auto;\" \/> (de generalisatie van dit algoritme naar grotere cijfers vereist bepaalde manipulaties; hoewel het niet al te moeilijk is, zal ik me voor de details liever aan een eenvoudig voorbeeld houden). Dan <img decoding=\"async\" alt=\"Ik heb van Knuth een cheque ontvangen voor 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/a3a658b41241bf40a1f0e779527b3eb2.jpg\" style=\"display:block;margin: 0 auto;\" \/>, <img decoding=\"async\" alt=\"Ik heb van Knuth een cheque ontvangen voor 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/bf8e1b283d1cfa76314380b74b308b38.jpg\" style=\"display:block;margin: 0 auto;\" \/>, <img decoding=\"async\" alt=\"Ik heb van Knuth een cheque ontvangen voor 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/69c922747089f3affb9d640910047a41.jpg\" style=\"display:block;margin: 0 auto;\" \/>. Vermenigvuldigen van tweetermen geeft <img decoding=\"async\" alt=\"Ik heb van Knuth een cheque ontvangen voor 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/274f90358c358641db7ccb2bda5896b1.jpg\" style=\"display:block;margin: 0 auto;\" \/>. Tot nu toe hebben we nog steeds <img decoding=\"async\" alt=\"Ik heb van Knuth een cheque ontvangen voor 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/be0a72ca4a77d7c710b99741619c4492.jpg\" style=\"display:block;margin: 0 auto;\" \/> eencijferige vermenigvuldigingen: <img decoding=\"async\" alt=\"Ik heb van Knuth een cheque ontvangen voor 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/10af5b0ea33a7df7bceb34de5757ba5d.jpg\" style=\"display:block;margin: 0 auto;\" \/>, <img decoding=\"async\" alt=\"Ik heb van Knuth een cheque ontvangen voor 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/66919878cca7db5c80eca9e89c2bca13.jpg\" style=\"display:block;margin: 0 auto;\" \/>, <img decoding=\"async\" alt=\"Ik heb van Knuth een cheque ontvangen voor 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/c9987bea5bc2a1fb928ef2c60bf880fb.jpg\" style=\"display:block;margin: 0 auto;\" \/>, <img decoding=\"async\" alt=\"Ik heb van Knuth een cheque ontvangen voor 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/c6136863142c02a1b6ba260f02544c0c.jpg\" style=\"display:block;margin: 0 auto;\" \/>. Laten we nu optellen en aftrekken <img decoding=\"async\" alt=\"Ik heb van Knuth een cheque ontvangen voor 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/1e9707de3bac2233c9343d2d95d5d1bb.jpg\" style=\"display:block;margin: 0 auto;\" \/>Na afloop van enkele herschikkingen, die ik als een oefening voor de lezer zal achterlaten, krijgen we <img decoding=\"async\" alt=\"Ik heb van Knuth een cheque ontvangen voor 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/9015c02c113b58d67e73013fea4ce9dd.jpg\" style=\"display:block;margin: 0 auto;\" \/>\u00a0\u2014 in totaal drie eencijferige vermenigvuldigingen! (Er zijn enkele constante co\u00ebffici\u00ebnten, maar die kunnen alleen worden berekend door op te tellen en cijfers te verschuiven).<\/p>\n<p>Vraag niet om bewijs, maar <b>de Karatsuba-algoritme<\/b> (recursief gegeneraliseerd uit het bovenstaande voorbeeld) verbetert de traditionele vermenigvuldigingsmethode van <img decoding=\"async\" alt=\"Ik heb van Knuth een cheque ontvangen voor 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/99577e368b573f762034767d5af05032.jpg\" style=\"display:block;margin: 0 auto;\" \/> operaties tot <img decoding=\"async\" alt=\"Ik heb van Knuth een cheque ontvangen voor 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/df139625f074f236e50343ecf5f2021a.jpg\" style=\"display:block;margin: 0 auto;\" \/>. Let op, dit is een echte verbetering van het algoritme, geen optimalisatie voor mentale berekeningen. Inderdaad, het algoritme is niet geschikt voor mentale berekeningen, omdat het hoge overheadkosten voor recursieve bewerkingen vereist. Bovendien komt het effect pas volledig tot zijn recht wanneer de getallen groot genoeg worden (gelukkig zijn er nog snellere methoden gekomen na het Karatsuba-algoritme: in maart 2019 werd er een algoritme gepubliceerd dat slechts vereist <noindex><a rel=\"nofollow\" href=\"https:\/\/web.maths.unsw.edu.au\/~davidharvey\/papers\/nlogn\/\"><i>n log n<\/i><\/a><\/noindex> vermenigvuldigingen; de versnelling is alleen van toepassing op onvoorstelbaar grote getallen).<\/p>\n<p>Dit algoritme wordt beschreven op pagina 295 van het tweede deel van 'Geavanceerde algoritmen'. Daar schrijft Knuth: 'Het is opmerkelijk dat dit idee pas is ontdekt in <b>1962<\/b> jaar', toen er een artikel werd gepubliceerd dat het Karatsuba-algoritme beschreef. Maar! In 1995 publiceerde Karatsuba het artikel 'Complexiteit van berekeningen', waarin hij enkele dingen zegt: 1) rond 1956 veronderstelde Kolmogorov dat vermenigvuldigen niet kan worden gedaan in minder dan <img decoding=\"async\" alt=\"Ik heb van Knuth een cheque ontvangen voor 0x$3,00\" src=\"\/wp-content\/uploads\/2019\/05\/87c650ae7cb55d5b5cd1f7d440cadbee.jpg\" style=\"display:block;margin: 0 auto;\" \/> stappen; 2) in <b>1960<\/b> jaar was Karatsuba aanwezig op een seminar waar Kolmogorov zijn hypothese n\u00b2 uitlegde. 3) 'Precies een week later' ontwikkelde Karatsuba het 'verdeel en heers'-algoritme; 4) in 1962 schreef en publiceerde Kolmogorov een artikel <i>namens Karatsuba<\/i> met een beschrijving van het algoritme. 'Ik hoorde pas over dit artikel nadat het was herdrukt.'<\/p>\n<p>Dus de fout ligt erin dat in plaats van <i>1962<\/i> moet het <i>1960<\/i> jaar worden opgegeven. Dat is alles.<\/p>\n<h1>Analyse<\/h1>\n<p>\n<b>Het zoeken naar fouten vereiste geen bijzondere bekwaamheid.<\/b><\/p>\n<ol>\n<li>De eerste fout was zo banaal als maar kan en bevond zich op een redelijk zichtbare plek (het begin van het hoofdstuk). Elke idioot zou het gevonden hebben; ik was gewoon die idioot.\n<\/li>\n<li>Het vinden van de tweede drukfout vereiste geluk en toewijding, maar geen vaardigheid. De index voor 'Williams' staat op de voorlaatste pagina van de bundel, een vrij opmerkelijk deel van het boek. Ik was net de index aan het doorbladeren (dat is niet zo erg als het lijkt, omdat er in de indexen van Knuth verborgen paaseieren zitten. Bijvoorbeeld, er zijn vermeldingen in het Arabisch en Hebreeuws, en beide verwijzen naar pagina 66. Maar op die pagina komen geen van beide talen voor; in plaats daarvan wordt verwezen naar 'talen die van rechts naar links worden gelezen'). En mijn aandacht werd getrokken door de tweede naam. Aangezien ik meestal Wikipedia lees, controleerde ik Robin Williams en merkte ik een discrepantie op.\n<\/li>\n<li>Ik wou dat ik kon zeggen dat ik serieus onderzoek had gedaan om een historische fout te vinden, maar eigenlijk heb ik gewoon gekeken <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Karatsuba_algorithm\">naar de Wikipedia-pagina over het Karatsuba-algoritme<\/a><\/noindex>. In de eerste zin staat: 'Het Karatsuba-algoritme is een snel vermenigvuldigingsalgoritme. Ontdekt door Anatoli Karatsuba in 1960 en gepubliceerd in 1962.' Daarna was het nog maar een kwestie van twee keer twee optellen.<\/li>\n<\/ol>\n<p>\nIn de toekomst zou ik graag een meer significante fout willen vinden, vooral in de code van Knuth. Ik zou ook graag een bug vinden in de eerste bundel 'Fundamentele algoritmen'. Misschien had ik dat gevonden, maar om de een of andere reden heeft de plaatselijke bibliotheek alleen de bundels 2, 3 en 4A.<\/p>\n<p><b>Financi\u00eble feiten:<\/b><\/p>\n<ul>\n<li>In totaal bestaat mijn bijdrage aan TAOCP slechts uit drie symbolen: \u00e9\u00e9n toevoeging <i>str1 != str2<\/i>, vervanging <i>m<\/i> en een werkende opdracht krijgen. <i>n<\/i> en <i>2<\/i> en een werkende opdracht krijgen. <i>0<\/i>. Voor $2,56 zijn dat vrij winstgevende symbolen; als je dergelijke bedragen zou krijgen, zou een artikel van 1000 woorden (gemiddeld vier symbolen) je tien stuks opleveren.\n<\/li>\n<li>Met drie hexadecimale dollars deel ik samen met 29 andere burgers de 69e plaats op de lijst van de rijkste rekeninghouders van de San-Serif-bank (per 1 mei 2019).<\/li>\n<\/ul>\n<h1>Andere discussies over cheques van Knuth<\/h1>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/kevinlawler.com\/knuth\">Hoe je een cheque van Knuth kunt krijgen<\/a><\/noindex>\n<p>Algemene aanbevelingen voor het zoeken naar fouten in de boeken van Knuth. Deze hebben voornamelijk betrekking op technische fouten, die ik niet heb. Er staat \u00e9\u00e9n zin in die ik serieus nam:<\/p>\n<blockquote><p>Het is beter te wachten tot je een set fouten hebt verzameld om op te sturen. Door meerdere echte, maar niet erg waardevolle fouten te combineren, vergroot je de kans dat een van hen daadwerkelijk wordt erkend als een fout of advies. Als je fouten \u00e9\u00e9n voor \u00e9\u00e9n opsturt, kunnen ze allemaal afzonderlijk worden afgekeurd.<\/p><\/blockquote>\n<p>\nIk wilde geen onzinnige typefouten verzenden, maar volgde het advies en stuurde de e-mail pas toen ik een historische fout vond die ernstig genoeg leek.\n<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/ashutoshmehra.net\/blog\/about\/knuth-reward-checks-and-certificates\/\">Cheques van Ashutosh Mehra<\/a><\/noindex>\n<p>Ashutosh Mehra is de derde rijkste bijdrager in San-Serif met een enorm vermogen van 0x$207,f0 in BoSS.\n<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/www.truetex.com\/knuthchk.htm\">Cheque voor enkele functionele fouten in de echte TeX-code<\/a><\/noindex>\n<\/li>\n<li>Diversen: <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>Bron: <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.3 - 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\/nl\/blog\/news\/ya-poluchil-ot-knuta-chek-na-0x-3-00\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"nl_NL\" \/>\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\/nl\/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\udd47Ik ontving een cheque van Knuth ter waarde van 0x$3,00 | ProHoster","description":"Donald Knuth is een wetenschapper op het gebied van computerwetenschappen, die zo om de correctheid van zijn boeken geeft, dat hij \u00e9\u00e9n hexadecimale dollar ($2,56, 0x$1,00) biedt voor elke gevonden \"fout\".","canonical_url":"https:\/\/prohoster.info\/nl\/blog\/news\/ya-poluchil-ot-knuta-chek-na-0x-3-00","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"nl_NL","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\/nl\/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\/nl\/wp-json\/wp\/v2\/posts\/34164","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/comments?post=34164"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/34164\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media\/25780"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media?parent=34164"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/categories?post=34164"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/tags?post=34164"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}