这是我的问题。
想象一下你有这样的功能:(这里是C)
int strangeRand() {
if ( rand() % 100 <= 70 ) return 0;
else return 1;
}
这一次返回0概率为0.7 和1的概率为0.3
这是我想要做的,创建一个函数,返回0的概率为0.5和1,概率为0.5。
我只需要使用strangeRand()函数[无法修改](和循环,如果是等但没有rand()函数)
有人知道了,怎么做?
感谢。
答案 0 :(得分:4)
这实际上是一个已解决的问题!它通常被称为获得fair result from an unfair coin。
该算法的工作原理如下:
提供的链接包含为什么算法有效的解释。