Twitterでブレストした内容、古くなると転記するのも面倒になるので今のうちに転記しておこう。 どうすれば部屋が片付くかをプログラマ的に考える。 まず「ものを捨てる」は最後の手段。ものを捨てれば片付くなんてのは「nの値が小さければこのO(n^3)のアルゴリズムでもかまわない」って言っているようなものだ。 よく言及される方法に「すべてのものに置く場所を作る」がある。これはO(1)でものを取り出すことのできる良い方法。鍵や財布や携帯をこの方法で整理すると外出時のオーバーヘッドが圧縮される。一方この方法を靴下に適用するのは適切ではない。靴下1, 2, ... nにそれぞれ同じサイズの領域を割り当てたりするのは容積の無駄。この場合はあふれる確率が無視できる程度に小さい「余裕のあるサイズ」の「靴下入れ」を作ってそこにつっこむのが一つの解。この設計は「個別の靴下を指定して取得することはない」という前