在 C 或 Python 中根据双峰分布生成随机值的最简单方法是什么?
我可以实现 Ziggurat 算法或 Box-Muller 变换之类的东西,但如果有现成的库或我不知道的更简单的算法,那就更好了。
最佳答案
您不只是从两种模态分布中选取值吗?
http://docs.python.org/library/random.html#random.triangular
听起来您只是在调用 triangular 的两组参数之间来回切换。
def bimodal( low1, high1, mode1, low2, high2, mode2 ):
toss = random.choice( (1, 2) )
if toss == 1:
return random.triangular( low1, high1, mode1 )
else:
return random.triangular( low2, high2, mode2 )
这可能会满足您的所有需求。
关于python - C 或 Python 中的双峰分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/651421/