例如,一个分布以概率0.3返回1.0并以概率0.7返回1.1的分布。谢谢你。
最佳答案
也许您不需要完整的分布类型,但仅从这种分布中抽样就足够了吗?
如果是这种情况,那么最简单的方法是:
using StatsBase # corrected a typo here
values = [1.0, 1.1]
probabilities = [0.3, 0.7]
w = Weights(probabilities)
sample(values, w) # sampling
如果您实际上想使用发行版,那么现在可以获得的最接近的东西是:
using Distributions
values = [1.0, 1.1]
probabilities = [0.3, 0.7]
d = Categorical(probabilities)
values[rand(d)] # sampling
但是会慢一些。
如果要在Distributions包类型系统之后定义自己的发行版,最简单的方法是采用此代码https://github.com/JuliaStats/Distributions.jl/blob/master/src/univariate/discrete/categorical.jl并根据需要进行修改(但这是我要付出的巨大努力)。
关于julia - 如何在Julia中编写任意离散分布?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48212909/