指数分布推导

离散模拟时候经常遇到这个分布.

先说结论:

老板开小卖部,平均经过\(\lambda\)时间会有一个客人进店买东西, 那么第一个客人进店的时间服从指数分布. 速率是 \(1/\lambda\) , 密度函数是: \\frac{1}{\\lambda}e\^{-\\frac{x}{\\lambda}} . 表示当前时间是x, 那么这个时间点第一个客人进来的概率是这个.

证明过程:

先证泊松分布. 再利用泊松分布得到指数分布.

python源码分析:

复制代码
import random
random.expovariate(1.0 / interval)  # interval就是平均多少小时会有一个客人进来买东西.

def expovariate(self, lambd):
        """Exponential distribution.

        lambd is 1.0 divided by the desired mean.  It should be
        nonzero.  (The parameter would be called "lambda", but that is
        a reserved word in Python.)  Returned values range from 0 to
        positive infinity if lambd is positive, and from negative
        infinity to 0 if lambd is negative.

        """
        # lambd: rate lambd = 1/mean
        # ('lambda' is a Python reserved word)

        # we use 1-random() instead of random() to preclude the
        # possibility of taking the log of zero.
        return -_log(1.0 - self.random()) / lambd

上来一直没看懂源码, 后来问了问心一言和ds. 都提到了逆采样.他们用累计分布来计算密度分布,非常好的思路.

首先我们看指数分布的 CDF, 也就是密度函数的积分.

F(x;λ)=P(X≤x)=\(1−e^{−λx}\) ,其中λ是速率=1/mean

\(y=1−e^{−λx}\)

那么我们有\(e^{−λx}=1-y\), 两遍取log

λx=-log(1-y)

两遍除以λ就是我们上面代码 return部分的公式了.

相关推荐
汉字萌萌哒6 分钟前
2024CSP-J入门级C++真题详解
开发语言·c++
arbboter16 分钟前
【网络工具】NetProxy网络代理用户手册
开发语言·网络·c#·网络代理·网络异常·代理工具
微小冷1 小时前
海康威视相机C#二次开发环境配置
数码相机·c#·.net·海康威视·相机开发
汉字萌萌哒1 小时前
2019CCF-CSP入门级C++试题解析
java·开发语言·c++
叠层归一研究院1 小时前
AGI 系统(十一):二阶网络 — 二阶递归 × 多主体 (元符号网络)
开发语言·人工智能·算法·php·agi
小雨笙笙2 小时前
C语言:变量三属性——存储类型
c语言·开发语言
果果燕2 小时前
C++ 学习笔记(二):类与对象—— 构造函数与析构函数
开发语言·c++
江畔柳前堤2 小时前
Function Calling 与 Tool Calling:从认知到工程的全景深度解析
开发语言·网络·人工智能·深度学习·算法·机器学习·php
2601_949950633 小时前
Java 面试准备,用练题簿把“背过八股”变成“真正会答”
java·开发语言·面试·刷题·小程序推荐
老洋葱Mr_Onion3 小时前
【C++】信息学奥赛CSP通关之路——CSP-J/S第一轮原创全真模拟试卷集(2026)卷四全卷解析
开发语言·c++