我正在编写与分布和随机投掷相关的大学作业。问题是:如何在Ruby中使用给定的离散分布获取随机数字。
更具体地说,对于像(0,P=1/2);(1000,P=1/2)这样的普通离散分布,我可以编写以下函数:
更具体地说,对于像(0,P=1/2);(1000,P=1/2)这样的普通离散分布,我可以编写以下函数:
def chooseNumber(a,b)
rval = Random.rand(0..1)
return a if rval == 0
return b
end
第一个问题:是否有使用本地Random类编写它的方法?
第二个问题:如何处理像(0,P=1/5;2,P=2/5;1000,P=2/5)或更糟糕的分布(0,P=0.33;2,P=0.49;1000,P=0.18)这样的情况最好?