#P2256. Artificial Intelligence?

Artificial Intelligence?

题目描述

高中物理老师通常认为,以文本形式给出的问题比纯粹的计算题更具挑战性。毕竟,学生首先需要阅读并理解题目!

因此,他们不会直接给出像“U=10VU=10VI=5AI=5A,求P=?P=?”这样的问题,而是像这样描述:“一个电路中有一个电压为U=10VU=10V的电池和一个灯泡,通过灯泡的电流为I=5AI=5A。请问灯泡产生的功率是多少?”

然而,有一半的学生根本不会认真读题。他们只会从题目中提取已知条件:U=10VU=10VI=5AI=5A。然后他们会想:“我知道哪些公式?啊,对了,P=U×IP=U \times I。所以P=10V×5A=500WP=10V \times 5A=500W。搞定。”

好吧,这种方法并不总是有效,因此这些学生通常不是物理考试中的高分得主。但至少这个简单的算法通常足以让他们及格。(虽然悲哀,但事实如此。)

今天,我们要测试计算机是否能够通过高中物理考试。我们首先关注PP-UU-II类型的问题,即在已知功率、电压和电流中的两个量时,求解第三个量。

你的任务是编写一个程序,读取此类文本问题,并根据上述简单算法解决它。

输入格式

输入的第一行包含测试用例的数量。

每个测试用例由一行组成,其中包含恰好两个数据字段和一些额外的任意单词。数据字段的格式为I=xAI=xAU=xVU=xVP=xWP=xW,其中xx是一个实数。在单位(AAVVWW)之前可能有一个前缀:mm(毫)、kk(千)或MM(兆)。总结如下:

数据字段符合以下语法规则:

DataField ::= Concept '=' RealNumber [Prefix] Unit  
Concept   ::= 'P' | 'U' | 'I'  
Prefix    ::= 'm' | 'k' | 'M'  
Unit      ::= 'W' | 'V' | 'A'  

额外说明:

  • 等号(==在数据字段中出现,不会出现在其他上下文中。
  • 数据字段内部没有空白字符(制表符或空格)。
  • 每组数据会给出PPUUPPII,或UUII中的两个量。

输出格式

对于每个测试用例,输出三行:

  1. 一行显示“Problem #k”,其中kk是测试用例的编号。
  2. 一行显示答案(电压、功率或电流,根据给定的量计算),结果不带前缀,并保留两位小数(如样例所示)。
  3. 一个空行。

样例输入 1

3  
If the voltage is U=200V and the current is I=4.5A, which power is generated?  
A light-bulb yields P=100W and the voltage is U=220V. Compute the current, please.  
bla bla bla lightning strike I=2A bla bla bla P=2.5MW bla bla voltage?  

样例输出 1

Problem #1  
P=900.00W  

Problem #2  
I=0.45A  

Problem #3  
U=1250000.00V  

题目来源
Ulm Local 1998