C++中掷骰子获得更高值的概率


假设三位玩家A、B、C掷骰子,我们需要找到C掷骰子且C掷出的点数高于A和B的概率。

为了检查获得更高值的概率,我们必须记住第三次掷骰子的值高于前两次。

例如,A掷骰子得2分,B掷骰子得3分,那么C获得更高值的概率是3/6 = 1/2,因为只有3个值高于A和B,即4、5和6,所以简化后的概率为1/2。

因此,所得结果应进一步简化。

输入

A = 3, B = 5

输出

1/6

说明 − 唯一大于3和5的值是6,所以概率是1/6。

输入

A = 2, B = 4

输出

1/3

说明 − 大于2和4的值是5和6,其概率是2/6,可以简化为1/3。

下面使用的解决问题的方法如下

  • 我们将找到A和B的值中的最大值

  • 从6中减去A和B的最大值,并计算其与6的最大公约数

  • 返回结果。

算法

Start
Step 1→ probability of getting more value in third dice
   void probab_third(int a, int b)
      declare int c = 6 - max(a, b)
      declare int GCD = __gcd(c, 6)
      Print GCD
Step 2→ In main()
   Declare int a = 2, b = 2
   Call probab_third(a, b)
Stop

示例

 在线演示

#include <bits/stdc++.h>
using namespace std;
//probability of getting more value in third dice
void probab_third(int a, int b){
   int c = 6 - max(a, b);
   int GCD = __gcd(c, 6);
   cout<<"probability of getting more value in third dice : " <<c / GCD << "/" << 6 / GCD;
}
int main(){
   int a = 2, b = 2;
   probab_third(a, b);
   return 0;
}

输出

如果运行以上代码,它将生成以下输出:

probability of getting more value in third dice : 2/3

更新于:2020年8月13日

79 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.