在开发中,经常遇到一个需求,给一些事件,并指定这些事件出现的概率。例如:A:10%,B:20%, C:30%,D:40%
按照事件的概率随机选择一个其中一个事件。
实现思路:
根据大学概率论所学的知识(啥,概率论课你睡觉了,我也睡觉了。那就我吹你听吧),这是一个典型的均匀分布问题。不扯那些复杂的公式了,我的概率论知识也差不多都还给老师了,直接画图来解释一下。
图中,A,B,C,D四种颜色画出了四个事件出现的概率,也就是在[0,100]数轴上所占的长度。只要我们在[0-100]中取一个随机数,看这个随机数落在A,B,C,D哪个区间中,就取哪个事件。
用代码实现一下,现在主要写golang,先用golang实现一下:
package main
import (
"fmt"
"math/rand"
)
func main() {
b := make(map[uint32]int32)
b[0] = 10
b[1] = 20
b[2] = 30
b[3] = 40
h