Directory

Extras

Filling in stuff from bonus-notes.md as time goes on. A lot of this is a big TODO. Anything with a ✯ next to it means it takes significant work.

Ch1 Bonuses

Ch2 Bonuses

Articles I decided not to work on:

General stuff:

Ch1 runners up:

Ch1 scrapped ideas:

Ch2 scrapped ideas:

Symbols and SICP Library Functions

Symbols and Special Forms

Chapter 1.1:

+ - * / 
display newline 
if cond
and or not

Chapter 1.2:

remainder
display
(runtime)

Chapter 1.3:

lambda
let
error

Chapter 2.1:

cons
car, cdr
pair?

Chapter 2.2:

nil ; More commonly '() or (list)
list
list-ref, length
cadr, caddr
append
map

The ill-fated Santa Barbara Monte Carlo machine

Exact runtime of count-change

The solution for the number of nodes in the count-change graph can be written out exactly. At the very least, we can write a big 500x500 matrix and write the number of nodes required as a function of $M^n$ applied to some vector. Problems like this are kind of fun, so it would be nice to just do this, put it in Jordan normal form. We'll end up with a fifth degree polynomial, and $T(n,5)=P(n) + \cos(...)$ where the "cos" is a placeholder for a bunch of complicated but finite bounded oscillatory terms.

RSA implementation

Linear diophantine equations

Bonus number theory (Euler totient, base b expansions of fractions)

alternatingpascal[n_] := 
  Table[Table[If[i <= j, (-1)^i Binomial[j, i], 0], {i, 0, n}], {j, 
    0, n}];
alternatingpascal[10] . alternatingpascal[10] // MatrixForm

Bonus special numbers (Lucas, Catalan, partition numbers, "negative binomial")

Numerical approximation formulas

(iterated polynomial gives sine, other iterated special polynomials give special things too) I think there's a story to tell here starting with...

Improving rates of convergence

I went on a tangent during our meeting about rates of convergence, so a few things could be: - How fast Newton's method converges (it's great). Accelerated newton - Newton's method in multiple variables, maybe? - Successive averaging - Resummation schemes

Ramanujan tau function

✯ Challenge 1: try to compute the Ramanujan tau function. This is some memoized code using recursion that supposedly works: https://claude.ai/chat/374b1219-3cd8-4a9e-87a3-dfddfc1f8896, but simple mathematica code can generate it too: CoefficientList[Take[Expand[Product[(1 - x^k)^24, {k, 1, 30}]], 30],x]

Continued fraction expansion of pi

Challenge 2: Continued fraction expansion of pi or 1/pi using exact arithmetic.

Reversibility and Quantum Computing

Drawing Church numerals

algorithm to draw church numerals in the style of the "what is PLUS times PLUS" video.

Enumerating binary trees and arithmetic expressions

enumerating partitions, enumerating binary trees (rather than just counting), enumerating expressions?

n queens and dancing links

Story about polynomial long division + my grandpa

$$\begin{align*} \end{align*}$$
$$\begin{align*} \end{align*}$$
$$\begin{align*} \end{align*}$$

Well, I mentioned something about measuring asymptotics in a lab. The most famous example of this is the polymer statistics of the self-avoiding walk: A long polymer in a solution tends to scrunch up, but it is not a random walk because the links of a polymer are physical object and can't overlap with each other. Instead it's a self-avoiding walk. If the self-avoiding walk has $N$ links, then the expected end-to-end distance is $R(N)\sim N^\nu$. For the random walk $\nu=1/2.$ For the self-avoiding walk, $\nu$ is known as a critical exponent and