Search code examples
knuthtaocp

What do the numbers in square brackets mean beside the TAoCP exercises?


Here is an example:

  1. [00] The binary form of 2009...
  2. [05] Which of the letters...
  3. [10] Four-bit quantities -- half-bytes, or hexadecimal digits...
  4. [15] A kilobyte...
  5. [M13] If x is any string of 0s and 1s...
  6. [M20] Prove or disprove...

What do the [00], [05], [10], [15], [M13], [M20] mean?

I have tried:

  • Googling taocp exercises square brackets
  • looking for a pattern in the square-bracketed numbers.
    • they both increase and decrease
    • they are mostly but not all multiples of five
    • the ones with an M appear every now and then
    • M is the only prefix
    • the codes are non-unique
  • Googling "the art of computer programming" exercises brackets
  • Googling "the art of computer programming" M13
  • Googling "the art of computer programming" [00]
  • Looking for an appendix in the book that explains
  • Considering the > that is beside some questions too

No luck!


Solution

  • I think this is mentioned in the introduction to the book somewhere (my copy is in my office now). If I remember correctly, the numbers indicate difficulty, with numbers beginning with 0 being warm-up questions, numbers beginning with 3 indicating problem-set level questions, numbers beginning with 4 indicating very hard problems, and 50 meaning extremely hard (possibly open) questions.

    The M means "math," as in "you'll need some tricky math here." The HM means "higher math," meaning "you'll need math beyond what we've covered here to solve this problem."

    Hope this helps!