高斯分布的乘积
import matplotlib.pyplot as plt from math import * class Distribution: def __init__(self,mu,sigma,x,values,start,end): self.mu = mu self.sigma = sigma self.values = values self.x = x self.start = start self.end =end def normalize(self): s = float(sum(self.values)) if s != 0.0: self.values = [i/s for i in self.values] def value(self, index): index -= self.start if index<0 or index >= len(self.values): return 0.0 else: return self.values[index] @staticmethod def gaussian(mu,sigma,cut = 5.0): sigma2 = sigma*sigma extent = int(ceil(cut*sigma)) values = [] x_lim=[] for x in xrange(mu-extent,mu+extent+1): x_lim.append(x) values.append(exp((-0.5*(x-mu)*(x-mu))/sigma2)) p1=Distribution(mu,sigma,x_lim,values,mu-extent,mu-extent+len(values)) p1.normalize() return p1 if __name__=='__main__': p1 = Distribution.gaussian(100,10) plt.plot(p1.x,p1.values,"b-",linewidth=3) p2 = Distribution.gaussian(150,20) plt.plot(p2.x,p2.values,"g-",linewidth=3) start = min(p1.start,p2.start) end = max(p1.end,p2.end) mul_dist = [] x_lim = [] for index in range(start,end): x_lim.append(index) mul_dist.append(p1.value(index)*p2.value(index)) #normalize the distribution s= float(sum(mul_dist)) if s!=0.0: mul_dist=[i/s for i in mul_dist] plt.plot(x_lim,mul_dist,"r-",linewidth=3) plt.show()
参考链接:高斯分布的乘积
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理