Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 什么是可能的算法?_C++_Algorithm - Fatal编程技术网

C++ 什么是可能的算法?

C++ 什么是可能的算法?,c++,algorithm,C++,Algorithm,斯莫尔是个弓箭手。斯莫尔正在和扎诺斯进行一场弓箭手比赛。他们试图轮流向目标射击,斯莫尔先射击。对于SmallR,每次射击目标的概率为a/b,而对于Zanoes,则为c/d。首先射中目标的人应该是胜利者 输出:斯莫尔赢得比赛的概率 输入: 一行包含四个整数。a、b、c、d 输出: 打印一个实数,表示斯莫尔赢得比赛的概率 如果绝对或相对误差不超过10,则认为答案正确 - 六, 我想到了如何解决这个问题,但是,我怎样才能计算出确切的概率呢?不知怎么的,我没有想到 Eg: input 1 2 1 2 o

斯莫尔是个弓箭手。斯莫尔正在和扎诺斯进行一场弓箭手比赛。他们试图轮流向目标射击,斯莫尔先射击。对于SmallR,每次射击目标的概率为
a/b
,而对于Zanoes,则为
c/d
。首先射中目标的人应该是胜利者

输出:斯莫尔赢得比赛的概率

输入: 一行包含四个整数。a、b、c、d

输出: 打印一个实数,表示斯莫尔赢得比赛的概率

如果绝对或相对误差不超过10,则认为答案正确 - 六,

我想到了如何解决这个问题,但是,我怎样才能计算出确切的概率呢?不知怎么的,我没有想到

Eg: input
1 2 1 2
output
0.666666666667
  • p=机会小R命中率=a/b
  • q=机会区命中率=c/d
两名球员错过的机会是(1-p)*(1-q)

如果斯莫尔现在命中,或者如果两名球员都未命中并且他在稍后的回合中赢得比赛,他将赢得比赛(=X)。既然又轮到他了,机会也是X

  • X=p+(1-p)*(1-q)*X
  • X=p+(1-p-q+pq)*X
  • -p=(-p-q+pq)*X
  • p/(p+q-pq)=X

在给定的示例中,1/2/(1/2+1/2-1/4)=1/2/3/4=4/6=0.666666 7

我对这个问题感到困惑。“每次射中目标的概率对斯莫尔而言,而对扎诺斯而言。”这意味着什么?也许这个问题更适合math.stackexchange.com,因为问题不是如何编码,但是关于算法。@JohnPirie可能来自谷歌翻译?我已经添加了解释。