目录

Question

三个人掷骰子,前两个人的得分分别是Y和W,问第三个人胜利的概率(第三个人得分不小于Y、W)?结果输出格式为(A/B),如果概率为0则输出(0/1),如果概率为1则输出(1/1)

Solution

解法1

通过公式(p= frac{6-max(Y,W) +1}{6})得到概率,然后将概率转换成要求的输出格式(化简)。因为化简比较费劲,而这里的结果是有限的,所以可以直接输出概率。

# Python
print(['1/1', '5/6', '2/3', '1/2', '1/3', '1/6'][max(map(int, input().split()))-1])
// C++
include <iostream>
using namespace std;

int main() {
    int y,w;
    string p[6]={"1/6", "1/3", "1/2", "2/3", "5/6", "1/1"};
    cin>>y>>w;
    cout<<p[6-max(y,w)];
    return 0;
}

解法2

得到结果后,进行化简。通过辗转相除法求分子分母的最大公约数。

// C++
include <iostream>
using namespace std;

int gcd(int a, int b) { // 求最大公约数
    if (b == 0)
        return a;
    return gcd(b, a % b);
}

int main() {
    int a, b;
    cin >> a >> b;
    int e = 6 - max(a, b) + 1;
    int g = gcd(e, 6);
    cout << e / g << '/' << 6 / g << endl;
    return 0;
}
内容来源于网络如有侵权请私信删除
你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!