【发布时间】:2017-04-16 05:16:27
【问题描述】:
我有 n 个有理数。其中,我必须选择 m 个数字,这样
sum of numerators of m numbers /sum denominators of m numbers is maximum.
例如如果我有 3 个数字 1/1、1/2、2/4,我必须选择 2 个数字。那么组合将是
If 1/1, 1/2 are used then 1+1/1+2 = 2/3
If 1/1, 2/4 are used then 1+2/1+4=3/5
If 1/2, 2/4 are used then 1+2/2+4=3/6=1/2
Maximum is 2/3
假设我有指定分子的 n 个整数数组,以及其他 n 个分母整数数组。和数字 m。 战略是什么?
输入中的数字不必是约简有理数。例如,一个数字可以是 4/6,不一定是 2/3。
编辑: 蛮力解决方案将通过从 n 中选择 m 个数字来尝试所有排列。然后应用上面的公式来找到结果,然后看看哪个组合给出了最大的结果。
所以我想知道是否有任何数学公式或属性或比蛮力方式更聪明的方式。
【问题讨论】:
-
请发minimal reproducible example 并准确指出您遇到问题的地方。
-
@trashgod 我想写一个程序。所以我需要逻辑/数学属性。而不是蛮力。
-
我认为这是一个相当不错的竞争性编程问题,花了我几分钟的时间思考。但它可能应该继续 cs.stackexchange.com
-
见mediant。
-
我认为不允许讨论正在进行的比赛的问题:link
标签: java math sum rational-numbers