分享

面试题

 看风景D人 2014-01-08

Q:一个很长的数据流,这个数据流中有R个逗号,那么要等概率的获取一个逗号的偏移量,即获取一个逗号偏移量的概率为1/R。该如何做?

A:遇到第一个逗号,以概率1取其偏移量;遇到第二个逗号,以概率1/2替换已选择的偏移量;遇到第三个逗号时,以概率1/3替换已选择的偏移量。。。依次类推到R个逗号时,以概率1/R替换已选择的偏移量。

简单证明:

     设遇到第n个逗号时,替换已选择偏移量的概率为1/n,那么当数据流全部读取结束之后,仍然选择第n个逗号的概率的算法是:

     不管前n-1个逗号的选择情况,第n个逗号一定替换,n+1到R一定不替换,即 1/n * (1 - 1/(n+1)) *  (1 - 1/(n+2)) *  (1 - 1/(n+3)) *  (1 - 1/(n+R))  ,化简后为1/R。因此,每个逗号是等概率被选择的。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多