python - C 或 Python 中的双峰分布

标签 python c random

在 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/

相关文章:

python - Django 。字段集有限的代理模型

python - 如何在Python中异步使用twitter搜索API?

c - 是否有一个纯 C 语言的库可以将 GPX 转换为 KML 和其他地理格式?

c# - 使用列表的 ASP.Net 随机生成器

python - 我无法获得要注册为字符串的条目。一直说是float

python - 内部函数中模拟默认参数值

c - 如何将 gcc 优化级别传递给 cmake 目标?

c - 守护进程什么时候会占用CPU?

javascript - 创建 "if then"Javascript 语句来更改页面背景颜色时遇到问题

r - 如何在当前时间自动设置随机种子?