首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

算法导论上的有关问题

2012-02-08 
算法导论上的问题SupposeuhaveaprocedureBiased-Randomoutputs1withsomeprobabilitypand0withprobability1

算法导论上的问题
Suppose   u   have   a   procedure   Biased-Random   outputs   1   with   some   probability   p   and   0   with   probability   1-p.Give   an   algorithm   that   uses   Biased-Random   returns     unbiased   answer,that   is,   0   or   1   with   the   probability   1/2?

[解决办法]
只输出一个字符:
输出1的概率是p
输出0的概率是1-p

连续输出两个字符:
输出11的概率是p^2
输出00的概率是(1-p)^2
输出01的概率是p(1-p)
输出10的概率是(1-p)p

可以看出输出01和10的概率是相同的
那么算法可以这样写:
while(1)
{ 用biased随机生成两个值
if(这两个值是‘10‘)输出’1‘ break;
if(这两个值是’01‘)输出’0‘ break;
}

热点排行