anchor.diff:  
   (defun locker-experiment-efficient (num-lockers)
     "Efficiently returns number of open lockers after doing a crazy-principal
  -locker experiment with NUM-LOCKERS lockers."
  +locker experiment with NUM-LOCKERS lockers.
  +
  +Found a pattern that I don't fully understand, but here it is translated into an
  +algorithm. [later edit: see locker-experiment-super-efficient]"
     (do ((i 1 (1+ i))
          (next-sum 3 (+ next-sum (* 2 (1+ i)) 1)))
         ((>= next-sum num-lockers) i)))
  
positive.code: ;; CL-USER> (locker-experiment-efficient 1000)
  ;; 31
  
  ;; CL-USER> (loop for i from 1 to 1000
  ;;              always (= (locker-experiment i)
  ;;                        (locker-experiment-simplified i)
  ;;                        (locker-experiment-efficient i)))
  ;; T
  
  ;; CL-USER> (time (dotimes (i 100000) (locker-experiment 1000)))
  
negative.code: ;;   314,414,578 processor cycles
  ;;   0 bytes consed
  ;; NIL
  ;; CL-USER> (time (dotimes (i 100000) (locker-experiment-super-efficient 1000)))
  ;; Evaluation took:
  ;;   0.020 seconds of real time
  ;;   0.015600 seconds of total run time (0.015600 user, 0.000000 system)
  ;;   80.00% CPU
  ;;   53,744,837 processor cycles
  ;;   0 bytes consed  
  ;; NIL
  