求映射带权对象至最小数量且保持权重比例的算法
带权对象映射为最小数量的算法问题
需求:将带权对象映射为对应的数量,要求在保持对象权重比例的前提下,使每个对象的数量尽可能小。
示例1
input: object1: 40, object2: 60, object3: 80 output: object1: 2, object2: 3, object3: 4
该示例可通过将各对象权重除以所有权重的最大公约数(gcd)解决。
示例2
input: object1: 3, object2: 15 output: object1: 1, object2: 5
示例3
input: object1: 13, object2: 97, object3: 20 output: object1: 1, object2: 7, object3: 2
示例4
input: object1: 1, object2: 17, object3: 97 output: object1: 0, object2: 1, object3: 5
gcd方法不适用于示例3和示例4,请问可用何种算法,有相关思路吗?
限制条件
- 权重范围为0-99
- 所有数量的总和最大值为32
内容的提问来源于stack exchange,提问作者Ildar
相关产品推荐
相关产品推荐

