AT1515 勝率計算

这是一个简单的程序设计题目,要求根据输入的两队比赛成绩计算胜率并进行比较。输入包含四组整数,分别代表两队的参赛场次和胜利次数。通过计算胜率并进行比较,输出哪一队的胜率更高或者是否相同。程序通过读取输入,计算胜率,然后根据比较结果输出相应的队伍名称或平局结果。注意,输出结果后需要添加换行符。

题目描述

野球のAtCoderリーグのシーズンが終了しました。チーム高橋はA試合中B回勝ち、チーム青木はC試合中D回勝ちました。AtCoderリーグでは勝率の高い順に高い順位が与えられます。チーム高橋とチーム青木のどちらが勝率で勝っているか答えるプログラムを作成してください。

输入格式

入力は以下の形式で標準入力から与えられる。


$ A $   $ B $   $ C $   $ D $ 
  • 1行目には、 44 つの整数 A,\ B,\ C,\ D\ (1\ ≦\ A,\ B,\ C,\ D\ ≦\ 100)が与えられる。
  • B\ ≦\ AB ≦ A かつ D\ ≦\ CD ≦ C を満たすことが保証される。

输出格式

チーム高橋の勝率がより高いときは TAKAHASHI、チーム青木の勝率がより高いときは AOKI、両チームの勝率が等しいときは DRAW と 1 行に出力せよ。出力の末尾にも改行をいれること。

题意翻译

输入A,B,C,D

A:高橘君参赛数,B:高橘君胜利数,C:青木参赛数,D:青木胜利数

如果胜率一样输出"DRAW"

如果高橘君胜率高输出"TAKAHASHI"

如果青木胜率高输出"AOKI"

感谢@RioBlu 提供的翻译

输入输出样例

输入 #1                                                输出 #1

5 2 6 3                           AOKI

输入 #2                                                输出 #2

100 80 100 73                     TAKAHASHI

输入 #3                                                输出 #3

66 30 55 25                       DRAW

思路:这倒题比较简单,首先要知道胜率=胜利数/参赛数。知道这个公式以后,我们就可以算出高橘君的胜率和青木的胜率,最后进行比较谁更大或一样就可以解出来了。

注意!输出字符串后要换行!要换行!要换行!

#include <iostream>
using namespace std;
int main(){
    int a,b,c,d;
    double A,B;//用来存储胜率的两个浮点型变量
    cin>>a>>b>>c>>d;
    A=b*1.0/a;//求出高橘君的胜率
    B=d*1.0/c;//求出青木的胜率
    if(A==B){//进行比较
        cout<<"DRAW"<<endl;
    }
    if(A>B){
        cout<<"TAKAHASHI"<<endl;
    }
    if(A<B){
        cout<<"AOKI"<<endl;
    }
    return 0;
}

### 关于多元统计中的条件概率 在处理多维随机变量时,理解并掌握如何计算条件概率至关重要。对于两个随机向量 \( \mathbf{X} \) \( \mathbf{Y} \),如果已知它们联合服从某个分布,则可以通过该联合分布来解给定其中一个条件下另一个的概率密度函数。 #### 条件概率定义 设 \( (\mathbf{X},\mathbf{Y}) \sim f_{(\mathbf{X},\mathbf{Y})}(x,y) \),其中 \( f_{(\mathbf{X},\mathbf{Y})}(x,y) \) 表示二者的联合概率密度函数。那么,在给定了 \( \mathbf{Y}=y \) 的情况下,\( \mathbf{X} \) 的条件概率密度可表示为: \[ f_{\mathbf{X}\mid\mathbf{Y}}(x|y)=\frac{f_{(\mathbf{X},\mathbf{Y})}(x,y)}{\int f_{(\mathbf{X},\mathbf{Y})}(x',y)\mathrm dx'}=\frac{f_{(\mathbf{X},\mathbf{Y})}(x,y)}{f_\mathbf{Y}(y)} \] 这里 \( f_\mathbf{Y}(y) \) 是边缘分布,即通过积分去除掉无关变量后的单个分量的分布[^1]。 #### 实际操作指南 当涉及到具体数值运算时,通常会借助编程工具完成复杂的积分过程。Python 中 `scipy.stats` 库提供了多种常见分布及其对应的累积分布函数 (CDF)、概率密度函数(PDF) 等功能,可用于辅助计算复杂情况下的条件概率[^2]。 下面给出一段 Python 代码片段作为实例展示如何基于正态分布构建简单场景下的一组双变量间的条件概率估计: ```python import numpy as np from scipy import stats # 定义均值向量 mu=[mu_X,mu_Y],协方差矩阵 Sigma=[[sigma_XX,sigma_XY],[sigma_YX,sigma_YY]] mu = [0, 0] Sigma = [[1., .9], [.9, 1.]] # 创建一个多维高斯分布对象 dist = stats.multivariate_normal(mean=mu, cov=Sigma) def conditional_prob(x_given_y): """ 给定 Y=y 下 X=x 的条件 PDF """ y_val = x_given_y[-1:] # 提取最后一个元素代表 Y 值 x_vals = x_given_y[:-1] # 其余部分视为 X 向量 # 使用公式 P(X|x,Y=y)=P(X=x,Y=y)/P(Y=y) joint_pdf_at_point = dist.pdf(x_given_y) marginal_y_dist = stats.norm(loc=mu[1], scale=np.sqrt(Sigma[1][1])) margianl_pdf_of_y = marginal_y_dist.pdf(y_val) cond_pdf_value = joint_pdf_at_point / margianl_pdf_of_y if margianl_pdf_of_y != 0 else None return cond_pdf_value print("Given Y=0.5, the condition probability density of X at point [-1, 0.5]:", conditional_prob(np.array([-1, 0.5]))) ``` 这段程序展示了如何利用 SciPy 库中提供的 multivariate normal distribution API 来模拟一个具体的条件概率查询任务,并返回相应的条件概率密度值[^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值