#P1079. Ratio

Ratio

题目描述

如果你看过电视上关于股市动态的报道,你会听到主持人说类似“上涨的股票数量是下跌股票数量的 14 比 9”,这意味着当天每有 14 只股票增值,大约有 9 只股票贬值。通常,当你听到这句话时,屏幕上会显示类似以下内容:

上涨:1498

下跌:902

作为一个对数字敏感的人,你会注意到主持人本可以说“上涨的股票数量是下跌股票数量的 5 比 3”,这更接近实际发生的情况。毕竟,赢家与输家的确切比例(精确到小数点后六位)是 1.6607541.660754,而他报告的比例是 14 比 9,即 1.5555551.555555,误差为 0.1051990.105199;他可以说“5 比 3”,这样引入的误差仅为 1.6666671.660754=0.0059131.666667 - 1.660754 = 0.005913。当然,“5 比 3” 的估计不如“1498 比 902” 准确;显然,另一个目标是使用较小的整数来表示比例。那么,为什么主持人会说“14 比 9” 呢?因为他的算法是去掉每个数字的最后两位数字,并将这些数字用作近似比例。

主持人需要的是一系列越来越精确的有理数近似值,以便他可以选择一个在电视上读出来。具体来说,他需要一个序列 a1,a2,,an{a_1, a_2, \dots, a_n},其中 a1a_1 是分母为 1 的有理数,最精确地匹配赢家与输家的真实比例(在平局的情况下向上取整),ai+1a_{i+1} 是分母最小的有理数,提供比 aia_i 更精确的近似值,而 ana_n 是用最小可能的分母表示的确切比例。有了这个序列,主持人可以决定哪个比例在准确性和简洁性之间提供了最佳权衡。

例如,如果 5 只股票价格上涨,4 只股票价格下跌,分母为 1 的最佳近似值是 1/11/1;也就是说,对于每一只下跌的股票,大约有一只股票上涨。这个答案与确切答案相差 0.250.251.01.01.251.25)。分母为 2 的最佳近似值是 2/22/23/23/2,但它们并没有比比例 1/11/1 更精确,因此不会被考虑。分母为 3 的最佳近似值是 4/34/3,比之前看到的任何近似值都更精确,因此应该报告。最后,当然,5/45/4 是确切的比例,因此它是序列中报告的最后一个数字。

你能自动化这个过程并帮助主持人吗?

输入

输入包含多对正整数。每对数字单独占一行,从第一列开始,两个数字之间用空格分隔。每对数字的第一个数字是当天上涨股票的数量,第二个数字是当天下跌股票的数量。股票总数永远不会超过 5000。

输出

对于每对输入数字,标准输出应包含一系列对赢家与输家比例的近似值。第一个近似值的分母为 1,最后一个近似值是用最小可能的分母表示的确切比例。中间的近似值越来越精确,分母也越来越大,如上所述。

每对数字的近似值逐行打印,从第一列开始,近似值的分子和分母用斜杠(/)分隔。一个近似值序列与另一个序列之间用一个空行分隔。

输入数据 1

5 4 
1498 902 

输出数据 1

1/1 
4/3 
5/4 

2/1 
3/2 
5/3 
48/29 
53/32 
58/35 
63/38 
68/41 
73/44 
78/47 
83/50 
88/53 
93/56 
377/227 
470/283 
563/339 
656/395 
749/451

来源

美国中南部 1998