在Java中生成泊松到达

2024-03-21

我想在Java中创建一个函数,在给定平均到达率(lambda)和平均服务率(mu)的情况下生成泊松到达。

在我的示例中,每天有 2.2 个请求,换句话说,每天有 2.2 个到达,平均服务时间为 108 小时。考虑到我的程序在 t=0 分钟开始,我想创建一个返回arrivals[]的函数,其中将包含t1、t2和可能的t3。 T1、t2 和 t3 是一天中到达事件发生的时刻(以分钟为单位)。我有以下限制:

t1 < t2 < t3 < 1440 minutes (24 hours*60 minutes/hour)

t2-t1 > 108 minutes

t3-t2 > 108 minutes

t3+ 108 minutes < 1440 minutes

有人可以帮帮我吗?

谢谢你,

Ana


您可以使用该算法由 D. Knuth 提出 http://en.wikipedia.org/wiki/Poisson_distribution#Generating_Poisson-distributed_random_variables:

private static int getPoissonRandom(double mean) {
    Random r = new Random();
    double L = Math.exp(-mean);
    int k = 0;
    double p = 1.0;
    do {
        p = p * r.nextDouble();
        k++;
    } while (p > L);
    return k - 1;
}

要了解这是如何工作的,请注意之后k循环条件变为迭代

p1 * p2 * ... * pk > L

这相当于

-ln(p1)/mean -ln(p2)/mean ... -ln(pk)/mean > 1

请注意,如果p是均匀分布的,那么 -ln(p)/mean 具有给定均值的指数分布。当事件之间的间隔长度是指数分布的独立随机变量时,泊松分布的随机变量等于给定事件在固定间隔内发生的次数。由于我们使用泊松分布的平均值作为事件之间间隔的指数分布的平均值,因此我们计算出现次数的固定内部是单位长度。因此,循环条件对事件之间的间隔长度进行求和,并检查是否超出了单位间隔。如果我们在计算第 k 个事件时超出了单位间隔,则该间隔内发生了 k-1 个事件,因此我们返回 k-1。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Java中生成泊松到达 的相关文章

随机推荐

  • 如何更新 Kubernetes 中的 api 版本列表

    我尝试在我的配置中使用 autoscaling v2beta2 apiVersion 如下本教程 https kubernetes io docs tasks run application horizontal pod autoscale
  • Perl 中的简单并行处理

    我在某个对象的函数内有一些代码块 它们可以并行运行并加快速度 我尝试使用subs parallel通过以下方式 所有这些都在函数体内 my is a done parallelize block a do some work return
  • 意外的 T_ENCAPSED_AND_WHITESPACE,期待 T_STRING 或 T_VARIABLE 或 T_NUM_STRING 错误 [重复]

    这个问题在这里已经有答案了 我对这个错误一直茫然 似乎不知道问题是什么 当我运行查询时 我收到此错误 意外的 T ENCAPSED AND WHITESPACE 需要 T STRING 或 T VARIABLE 或 T NUM STRING
  • 带 Bootstrap 的 Google 地图没有响应

    我正在使用 bootstrap 并嵌入了 Google Maps API 3 map canvas没有反应 它是固定宽度 另外 如果我使用height auto and width auto地图未显示在页面中 Why div class c
  • PyTorch - 参数不变

    为了了解 pytorch 的工作原理 我尝试对多元正态分布中的一些参数进行最大似然估计 然而 它似乎不适用于任何协方差相关的参数 所以我的问题是 为什么这段代码不起作用 import torch def make covariance ma
  • Flexdashboard多属性页面

    我正在学习 flexdashboard 并为未来的应用程序尝试一些不同的布局 但我无法为同一页面分配不同的属性 我希望第二页有一个行布局 列在导航栏 A 中 并在标题前面有一个图标 当我这样写时 data orientation rows
  • 在SSMS中将存储过程结果集导出到Excel

    我正在使用 SSMS 并尝试将存储过程的结果导出到新的 Excel 文件 SP 接受 int 参数 但我找不到在查询中调用它的方法 最新努力 EXEC sp makewebtask outputfile C Users me Documen
  • PHP手机浏览器检测?

    我需要一种在服务器端检测移动浏览器的方法 我想要一种不需要我做太多设置和维护的方法 但仍然可以为我提供 至少 Android Mobile Safari 和 Blackberry 浏览器以及 Opera 等替代浏览器的准确检测 我希望至少有
  • 使 jqGrid 可移动

    看起来 jqGrid 是基于 jQuery 对话框的 是否有可能使其可移动 像对话框一样 我已经能够将它放在对话框中 但有两个标题栏等看起来很奇怪 我 认为 可以向其中添加必要的类以使其可移动 但我对 jQuery 和 jqGrid 仍然相
  • Firebase Firestore JavaScript:查找未设置字段的文档

    在 Firebase Firestore 中 我可以查询未设置特定字段的文档吗 我知道如果我这样做 collectionReference where requires null 不会做我想做的事null是根本不同的 undefined驱动
  • 使用 JavaScript 创建 Powerpoint

    JavaScript 无法在客户端文件系统上本地创建文件 但是 我想知道是否可以通过某种 JSON 在网页 div 或 iframe 中以某种方式创建 Powerpoint MIME 然后让 UserAgent 找出它是 Powerpoin
  • iOS Safari HTML 表单下一个/上一个按钮 - 它们如何工作?

    免责声明 我正在使用 JQuery Mobile 我有一堆带有不同表单的页面 但其中一些页面在按下下一个 上一个按钮时似乎表现出不同的行为 所有表单都设置了选项卡索引 Form 1 工作完美 只是它跳过了 JQuery Mobile 翻转开
  • 在 Visual Studio 2008 中合并时强制比较文件

    目前 当我在 Visual Studio 2008 中右键单击 gt 合并特定文件时 它会尝试 并且通常会成功 自动将该文件合并到我指定的目标 如何强制 VS 始终允许我在合并工具中手动比较和合并文件 我应该提到我的源代码管理是 TFS 这
  • 红宝石脱轨

    Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 有时感觉我的公司是世界上唯一一家使用Ruby而不使用Ruby on Rails的公司 以至于R
  • 如何从 perl6 调用 Java 方法

    use java util zip CRC32 from
  • 在 Google 应用引擎上部署失败

    我有一个java应用程序 spring mvc jpa 我正在尝试将其部署在谷歌应用程序引擎上 由于某种原因 部署完成后出现以下错误 20 扫描本地磁盘上的文件 25 正在启动更新 错误详情 2011 年 2 月 26 日上午 10 43
  • 我们可以优化代码来降低功耗吗?

    有没有什么技术可以优化代码以确保更低的功耗 架构是ARM 语言是C 来自 ARM 技术参考网站 ARM11 MPCore 的特性 提高能源效率的处理器 效率包括 准确的分支和子程序返回预测 减少数量 错误的指令获取和 解码操作 使用物理寻址
  • 将 pandas DataFrame 列扩展为多行

    如果我有一个DataFrame这样 pd DataFrame name John days 1 3 5 7 给出这个结构 days name 0 1 3 5 7 John 如何将其扩展为以下内容 days name 0 1 John 1 3
  • 在存储过程中设置结果表名称

    返回多个结果的存储过程 CREATE PROCEDURE dbo GetMultipleTable AS BEGIN if exists select something from somewhere where somecondition
  • 在Java中生成泊松到达

    我想在Java中创建一个函数 在给定平均到达率 lambda 和平均服务率 mu 的情况下生成泊松到达 在我的示例中 每天有 2 2 个请求 换句话说 每天有 2 2 个到达 平均服务时间为 108 小时 考虑到我的程序在 t 0 分钟开始