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

服从均匀分布的随机数累加至超过1的循环时间复杂度是多少

import random  
def cummulative_sum():
   a = 0
   while a < 1:
       a += random.random()
   return a

1. 时间复杂度

  • 平均时间复杂度为O(1):该函数无输入参数,循环运行次数的期望是固定常数,和任何输入规模无关,因此平均复杂度是常数阶。
  • 最坏时间复杂度无明确上界:理论上存在连续多次返回极小值的可能,最坏情况下运行次数可以无限大,但该场景发生的概率趋近于0。

2. 循环终止的保证

理论上确实存在random.random()持续输出0导致循环永不终止的可能,但该场景属于零概率事件,在算法分析的常规语境下默认零概率事件不会发生。
另外实际工程实现中,random.random()返回的是有限精度的浮点数,不存在无限接近0的返回值,因此实际运行时循环必然会终止。

3. 循环期望运行次数

这个是概率论中的经典问题:求最小的正整数n,使得n个独立的(0,1)区间均匀分布随机变量的和大于1,n的期望为自然常数e(约等于2.718)。也就是说平均运行不到3次循环就会退出。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 19:06:03