2013年7月7日 星期日

11241 - Humidex


Problem C: Humidex

Adapted from Wikipedia, the free encyclopedia
改編自維基百科,自由的百科全書


酷熱指數(humidex) 是加拿大的氣象學家會了反映溫度與濕度(humidity)的共同結果,不同於在美國所使用的露點溫度(dew point),而不是相對濕度(relative humidity) 。

當氣溫達到 30 C (86 F) ,露點溫度 15 C (59 F),則酷熱指數 34 (酷熱指數是一個沒有單位的常數,但是顯示的時候仍使用氣溫單位 C)。如果溫度維持 30 C 而露點溫度上升到 25 C (77 F),則酷熱指數將會上升至 42.3。

在相同的氣溫與相對濕度下,酷熱指數傾向更高值相對於美國熱指數。

在 1979 年,加拿大氣象環境服務局的 J.M. Masterton 和 F.A. Richardson 制定一套酷熱指數的公式,並且沿用至今。根據加拿大氣象局表示,酷熱指數超過 40 將會感到 "十分不舒服"、45 以上 "危險",當酷熱指數達到 54 時,中暑就會發生。

在 1953 年 6 月 20 日,在加拿大安大略省的溫莎創下了 52.1 的酷熱指數記錄 (當時的居民還不知道這件事情,由於當時還沒有酷熱指數的發明。),而在近期,又在 1995 年 6 月 14 日,在溫莎和多倫多出現了酷熱指數高達 50 的情況。

酷熱指數(humiddx)的公式如下

    humidex = temperature + h
    h = (0.5555)*(e - 10.0)
    e = 6.11 * exp [5417.7530 * ((1/273.16) - (1/(dewpoint+273.16)))]
 
其中 exp(x)  是 2.718281828 的 x 次方。

酷熱指數只是個數字,而常被廣播電台同時與氣溫同時播報出來。例如:"現在外頭氣溫 47 度 ... 伴隨著酷熱指數 ....",有時氣象播報員給氣溫跟露點,或者給氣溫和酷熱指數,但卻很少三者同時播報。

寫一個程序處理,當給定其中兩個數據,輸出另外一數值。
假設所有的氣溫(temperature)、露點(dewpoint)及酷熱指數(humidex) 介於 -100 C 到 100 C。

Input Specification:

輸入第一行將會有數筆測資,每一筆測資將會有四個數據:一個字符、一個浮點數、一個字符、一個浮點數,分別代表相對應的數據內容。T 表示 Temperature, D 表示 dewpoint, H 表示 humidex。

最後一行只會包含一個 E 結束程序。

Output Specification:

對於每一組測資,輸出的格式如下:
 
T number D number H number
  
分別對應氣溫(temperature)、露點(dewpoint)、酷熱指數(humidex),四捨五入到小數點第一位,採用攝氏單位。

Sample Input:

T 30 D 15
T 30.0 D 25.0
E

Output for Sample Input:

T 30.0 D 15.0 H 34.0
T 30.0 D 25.0 H 42.3

Ondrej Lhotak