すべての組み合わせをみたすデータを用意する方法

データベースカバレッジを100%満たすデータを用意しようとすると、無限ともいえるデータを用意する必要があります。ここで、その無限ともいえるデータを用意するための古典的な方法をひとつ紹介しておきます。
まず、カメを用意してください。えぇ、カメです。なるべくまっすぐ等速度であるくカメがよいです。1分に1m歩くカメがよいとされています。
カメを用意したら、カメの1m後ろに立ちます。で、カメが歩き出すのを待ちます。
カメが歩き出したら、カメの位置を覚えておいて、データをひとつ挙げてください。それから、カメの2倍の速さでカメがいた場所まで歩きます。1分に1m歩くカメを用意したならば、1分に2mの速さで歩くことになります。
カメがもといた位置までたどりついたなら、その時点でカメがいる位置を覚えます。カメは遅いとはいえ、少し進んでいるはずです。カメの位置を覚えたらデータの組み合わせをひとつあげて再びカメがいたところまで歩きます。
あとは、カメがいたところに着く→カメは少し進んでいるのでその時点でカメがいる場所を覚える→データをひとつ挙げる→カメがいた場所まで歩く→・・・・を繰り返せば、あなたはカメに追いつくと同時にすべてのデータを挙げることができているはずです。

参考文献

パラドックス!

パラドックス!

元ネタのゼノンのパラドックスに関しては野矢茂樹さんが書かれています。

無限論の教室 (講談社現代新書)

無限論の教室 (講談社現代新書)

こちらには、「無限」に関する話が読みやすい文章で書かれています。ゼノンのパラドックスについてももちろん取り上げられています。