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

求Random(n)算法调用flip()的平均随机比特使用量(期望)

求解Random(n)算法的期望随机比特调用次数

已知flip()函数以相等概率返回0或1,且可通过循环不变式证明Random(n)函数能等概率返回0到n-1的整数,算法实现如下:

function Random(n):
    v = 1;
    c = 0;
    loop
        v = 2v;
        c = 2c + flip();
        if (v >= n) then
            if (c < n) then
                return c;
            else
                v = v - n;
                c = c - n;
            end if
        end if
    end loop
end function

现需求解该算法平均使用的随机比特数,即调用flip()函数的期望次数。目前已知需经过⌈logn⌉+1次将v翻倍使其达到n量级,此时算法以n/v的概率结束;若未结束则继续循环,但无法确定后续v翻倍后是否≥n及对应概率,特此求助。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 22:37:11