在 N 个备选方案中随机选择

计算科学 算法 蒙特卡洛 随机数生成
2021-12-24 00:46:41

我了解如何生成二进制变量的随机序列,其中1以概率发生和以p概率0发生1-p即,在每个步骤中,您选择1某个随机数是否小于p ,否则您选择0

这如何推广到两个以上的选择?

如果我有三个互斥的选择{0,1,2}我该如何进行?我在这里找到了解释它说从代表概率的二进制近似的二进制抛序列生成随机数。但是,这仅在事件具有足够不同的概率并且都具有相同长度的十进制扩展时才有效。

还有其他方法吗?

1个回答

如果我正确理解了您的问题:

  • 将区间细分为成正比(其中)。[0,1]Npii=1Npi=1
  • 使用伪随机数生成器,使用上的均匀概率密度分布来生成数字[0,1]x
  • 位于哪个段;此段对应于选择。x

示例:苹果 (p=0.5)、梨 (p=0.2)、柠檬 (p=0.3)

然后你的间隔是 ,如果,你选择柠檬;如果,你去买苹果。等等。[0,0.5]]0.5,0.7]]0.7,1.0]x=0.76x=0.34