选择不同概率的随机事件

Choosing random event with different probabilities

我需要帮助创建一个通用函数或伪代码,以从具有不同概率的一组事件中选择一个事件。 例如

最简单的解决方案是对范围求和并归一化(例如,值的总和为 195,您的第一个事件将获得范围 [0, 45/195=0.23[,第二个 [ 0.23, 0.23+0.076=0.31], 依此类推),然后从[0,1[中提取一个数,看看它属于什么范围。