If a categorical distribution has k distinct values, traditional approaches will require O(k) work to pick an outcome with the correct probabilities. This algorithm uses conditional probability to construct a table which will yield outcomes with the correct probabilities. Table generation requires O(k) time, but subsequent generation is done in O(1) time.
Required Ruby Version
>= 2.6.0
Authors
Paul J Sanchez
Versions
- 4.0.1 March 08, 2023 (6 KB)
- 4.0.0 January 24, 2023 (6 KB)
- 3.1.0 September 10, 2018 (6.5 KB)
- 3.0.3 September 10, 2015 (6.5 KB)
- 3.0.2 April 20, 2015 (6.5 KB)