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

Python生成指定参数的手机日拿起次数总体数据触发断言报错如何解决

问题分析
  • 分布选择错误:你使用np.random.randint(0, pickups, 5000)生成0到pickups-1的均匀分布整数,该分布的均值约为pickups/2,当传入pickups=45时期望均值仅为22.5,和断言要求的45偏差超过20,自然触发均值校验失败。
  • 参数未正确使用:函数定义的pop_size(总体大小)、std(标准差)两个入参完全没有被调用,反而硬编码了总体大小为5000,还在函数内部覆盖了入参std的值,不符合功能设计逻辑。
  • 分布不匹配校验规则:断言要求标准差接近np.sqrt(45),刚好符合泊松分布的特征(泊松分布的方差等于均值λ,标准差为√λ),说明题目要求生成的是均值为pickups的计数类泊松分布总体,而非均匀分布。
修复后的代码
import numpy as np

def get_population(pickups, pop_size, std):
    # 生成均值为pickups的泊松分布总体,大小为入参指定的pop_size
    pop = np.random.poisson(lam=pickups, size=pop_size)
    mean = np.mean(pop)
    std = np.std(pop)
    return pop, mean, std
修复说明
  • 改用np.random.poisson生成数据,泊松分布的均值等于传入的lam参数(即输入的pickups),刚好满足均值接近45的要求,同时泊松分布的标准差为√λ,也匹配断言中标准差接近np.sqrt(45)的要求,符合手机每日拿起次数这类计数数据的分布特征。
  • 总体大小使用入参pop_size,不再硬编码为5000,符合函数的参数设计逻辑。
  • 生成的5000样本的实际均值和标准差误差会稳定在0.5以内,可以正常通过给出的断言校验。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 01:06:02