My Knuth reward check

I attended a very interesting talk "All Questions Answered" by the famous computer science professor Don Knuth in March, where he talked about many things, including his new book.

The talk inspired me to read The Art of Computer Programming, Volume 4A: Combinatorial Algorithms. As he described in the talk, he gives a reward check (for 1 hexadecimal dollar) to anyone who finds an error in one of his books, so I set myself the goal of finding an error in the book while on vacation.

After a lot of study, I thought I'd found an error in a diagram, but then I realized I was confused. Next, I found a blatant error in an appendix, but that error had already been discovered and was listed in the errata. Finally I found an error on page 574 that I hoped hadn't been found yet and sent it off to Professor Knuth.

I was delighted to receive my reward check today, which Wikipedia calls "among computerdom's most prized trophies". That's a big exaggeration but nonetheless, I'm happy to get one. Note that the check is from the fictional Bank of San Seriffe to avoid check fraud problems from all the images of his checks on the web.

My Knuth TAOCP reward check

As for the book itself, it's interesting even if you're not after a reward, although very challenging to read. Volume 4a describes combinatorial algorithms, including more ways of computing permutations and combinations than you can shake a stick at. It also has an extensive discussion of BDDs and ZDDs, which are newish data structures for representing sets. The section on bitwise tricks and techniques is interesting if you like HAKMEM-style tricks such as reversing the bits in an integer through a short sequence of incomprehensible operations.

I have to admit that trying to find an error in a book is a strange vacation goal, but I'm glad I succeeded and Knuth's book taught me some interesting algorithms in the process.

P.S. I was very surprised to see this article on the front page of Hacker News. To answer the questions there and below, the error I found was in volume 4a page 574 (as the memo line on the check shows). The solution to exercise 67 on that page says a particular circuit uses 6 ANDN gates, which I thought should be NAND gates. It gets a bit more complicated because Knuth was referring to the ANDN op code for MMIX, but there was still a mistake with and-not versus not-and. (The other error I noticed was n choose k on page 824, but I checked the errata and it had already been found.)

6 comments:

  1. You aren't going to go into what the error was specifically?

    ReplyDelete
  2. And what was the error?
    I guess it was a lame typo...

    ReplyDelete
  3. From the author's comment on Hacker News (http://news.ycombinator.org/item?id=2523752), the error was '6 ANDN gates' (ANDN being a MMIX opcode) -> '6 NAND gates'.

    ReplyDelete
  4. Welcome to the club, mate. Here are my checks: https://fbcdn-sphotos-a.akamaihd.net/hphotos-ak-snc7/402382_10150550595441691_668091690_9430877_584906070_n.jpg

    ReplyDelete
  5. I got one of those types of checks from Hennessy and Patterson about fifteen years ago; but I forget the error I discovered.

    Never did cash the check. I assume it's filed somewhere with my papers --- maybe one day when I'm ninety years old and looking for something else, I'll run across it and smile.

    ReplyDelete