【问题标题】:how to calculate the next occurrence interval of a packet if you know that it follows the poisson distribution?如果知道它遵循泊松分布,如何计算数据包的下一个出现间隔?
【发布时间】:2012-01-01 21:23:44
【问题描述】:

假设您有一些计算机站,这些计算机站正在向网络发送数据包。

现在一个数据包的传输时间需要 S 秒 所有计算机站将发送的数据包数量遵循泊松分布

所以在给定帧时间生成 L 个数据包的概率是 Pr[k] = ( λ^(L) * e^(-λ) )/(L!)

现在,我想通过在每一步计算下一个发生间隔来模拟这一点,即下一个数据包将由站点生成的间隔。

我找到了一些代码,我得到了这样的等式:

            next_occurrence_interval= 1/λ  * log(1/(1-rand))

如果我没记错 rand 给出了一个从 0 到 1 的随机数。我试图理解,这到底是什么以及这个方程来自哪里,以便我能够在我的网络模拟程序中使用它我正在尝试编程。

【问题讨论】:

    标签: matlab frame packet


    【解决方案1】:

    这是一个泊松过程,它描述了一个事件以给定的平均速率独立发生的过程。我似乎记得这意味着到达间隔时间将遵循指数分布。

    现在让我们看看你的公式。请注意,由于 rand 返回一个介于 0 和 1 之间的统一数字,因此 1-rand 是一回事。那部分无关紧要!即 rand 等价于 1-rand。

    好的,接下来,看看你找到的表达式。就像我说的,你写的相当于

    next_occurrence_interval = 1/λ  * log(1/rand)
      =  1/λ  * (log(1) - log(rand))
      =  1/λ  * (-log(rand))
    

    现在,您可能开始认识到这是生成指数分布的随机数的方式。

    【讨论】:

    • 大多数 random() 实现从 [0, 1) 返回一个数字。因此,找到1 - random() 的差异可以避免未定义的ln(0)
    • @erickson - 你误解了整点。问题是这是在做什么?我的论点显示了为什么这会产生指数变量。 1-rand 只是简单地混淆了这个问题,并且实际上是无关紧要的,除非出现零 - 无论如何,这个事件的概率非常小。
    • 不,我没有误解整点。我只是在一个编程问题上指出一个实际问题。
    • @erickson:并不是所有的随机生成器都会在半开区间返回一个数字。事实上,在问题适用的 MATLAB 中,样本位于 (0,1) 区间内。 (请参阅帮助 rand。)因此,您的评论确实完全无关紧要。这在 MATLAB 中不是问题。
    • >> help rand: rand 均匀分布的伪随机数。 R = rand(N) 返回一个 N×N 矩阵,其中包含从开区间 (0,1) 上的标准均匀分布中提取的伪随机值。
    【解决方案2】:

    它是exponential distribution. 使用公式-ln (1 - random()) / λ, 其中λ 是每单位时间的平均事件数。

    【讨论】:

      猜你喜欢
      • 2020-12-01
      • 2020-12-09
      • 2018-07-25
      • 1970-01-01
      • 2018-02-10
      • 2020-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多