健身房等待时间模拟


七月中旬去了趟医院,在医生的建议下开始定期运动了。综合考虑工作日的时间安排和自己的身体状态后,暂且决定每天中午去健身房运动一会。目前每日运动就是中午去健身房踩20多分钟的椭圆机(顺带看一集番),消耗热量约320卡。然而虽然健身房里的椭圆机数量并不少,足足有10台,但是偶尔还是会发生去了没有位置,需要等人结束的情况,但是因为不知道到底要等多久,还是略微有些焦虑。于是在想,有没有办法量化等待时间,例如模拟计算下概率分布函数,所以有了这篇文章。

代码(基本是 GPT3.5 写的,有手动调整):https://gist.github.com/jerrylususu/2d8f7099a1c4af37160179b12ce13895

假设:有 10 个椭圆机,每个椭圆机上的运动者的运动时间 t_n 遵循均值为 μ,标准差为 σ 的正态分布。到达健身房时,所有 10 台椭圆机都已被占用,且每个运动者的剩余时间在 [0, t_n] 中均匀分布。等待时间为所有运动者剩余时间的最小值。

考虑到参数 μσ 都无法被准确估计,因此考虑 μ = 5/10/15,σ = 20/25/30,组合起来共 9 种情况;对每种情况运行一万次模拟,统计等待时间的 p50/p75/p90/p95,得到下表:

μ σ mean p50 p75 p90 p95
20 5 1.698 1.252 2.406 3.817 4.811
20 10 1.258 0.858 1.772 2.944 3.813
20 15 1.151 0.737 1.604 2.761 3.641
25 5 2.198 1.632 3.123 4.978 6.229
25 10 1.769 1.258 2.494 4.077 5.213
25 15 1.477 0.967 2.069 3.508 4.634
30 5 2.671 1.977 3.813 6.059 7.515
30 10 2.284 1.669 3.219 5.186 6.632
30 15 1.965 1.364 2.720 4.624 6.019

模拟结果可视化

结论:考虑所有情况,一般等 2 分钟就有 50% 概率可以等到位置,最坏情况下等 6 分钟也有 90% 的概率等到位置。