この記事では、特定の確率を持つサイコロを使用してサンプリングを行う方法について解説しています。著者は、スタックオーバーフローで「確率 p_i を持つ n 面のサイコロをローリングするための効率的なデータ構造は何か」という質問を投げかけ、得られた回答に感銘を受けました。特に取り上げられているのは、エイリアス法という強力な手法で、サイコロの展開を O(1) 時間で行え、簡単な前処理ステップのみで済むとされています。記事では、賢いサンプリング手法から実用不可能な単純手法まで、様々なアプローチを紹介し、それぞれのアルゴリズム、正当性の証明、時間・メモリ・ランダム性の分析を行います。この手法の理解が深まり、より最適なサンプリング方法を見いだす助けになることを希望しています。