You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Numpy生成系统泊松请求到达时的分布异常问题排查

问题分析与解决

你的代码核心问题出在可视化方式错误,导致你误以为结果不符合泊松分布特征:

  1. 泊松到达过程的核心特征是「单位时间内到达的请求数」服从泊松分布,但你当前的代码是把每个时间步的到达数直接画成柱状图(每个x轴点对应单个时间步的到达数),这展示的是每个时间点的到达情况,不是统计分布。

  2. 正确的做法是统计所有时间步中,不同到达数出现的频率,再和理论泊松分布对比。

修正后的代码示例

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import poisson

no_of_req = 500
timesteps = 500
rate = no_of_req / timesteps  # 每个时间步的平均到达率为1

# 生成所有时间步的到达数
poisson_counts = np.random.poisson(rate, size=timesteps)

# 统计各到达数的出现频率
unique_counts, counts_freq = np.unique(poisson_counts, return_counts=True)
counts_freq = counts_freq / timesteps  # 转换为频率

# 计算理论泊松分布的概率
theoretical_probs = poisson.pmf(unique_counts, rate)

# 绘制对比图
plt.bar(unique_counts, counts_freq, width=0.4, label='模拟频率', align='center')
plt.plot(unique_counts, theoretical_probs, 'ro-', label='理论泊松分布')
plt.xlabel('单位时间内到达数')
plt.ylabel('频率/概率')
plt.legend()
plt.show()

额外说明

  • 你原始代码中的update_time函数不影响泊松到达数的生成逻辑,除非该函数篡改了时间步的定义,但从问题描述看,核心问题还是可视化方式有误。
  • 当模拟次数(timesteps)足够大时,模拟的频率会逐渐逼近理论泊松分布的概率。

内容的提问来源于stack exchange,提问作者Hamsa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 02:42:14