将数字相乘以使其总和与指定数字匹配

时间:2018-01-09 09:21:07

标签: algorithm

这是我的问题: 我有N(在1和3之间说3或4)数字(整数或双精度,但我必须将小数位数限制为2或3)。 我想将它们相乘(并保持比例),使它们的总和匹配一定数量。 例如, 我有0.5和2.5,我想将它们乘以8。 这是一个问题,因为如果我将0,5乘以8/3和2,5乘以8/3并求它们,我将不会达到8,因为它们是无限数。 所以我需要这样的东西:将这个接近的数字乘以0,5到8/3,用另一个接近的数字乘以1.5到8/3,这样它们的总和就是8。

谢谢!

1 个答案:

答案 0 :(得分:1)

好的,你的问题如下:

x_1 * y + x_2 * y = z

当x_1和x_2是要与y相乘以达到z的数字时,对吗?

当您将此除以y时,您将收到

x_1 + x_2 = z / y

所以当你总结x_1和x_2时,你会发现你需要哪个z / y。 由于你知道z,你必须将结果乘以y并将其除以你的和(x_1 + x_2)才能知道z。

小例子:

您希望将x_1(= 3)和x_2(= 2,5)乘以y得到z(= 11)。

x_1 + x_2 = 5,5 = 11 / y

乘以y并用5,5除以:

5,5 = 11 / y | * y
5,5y = 11 | / 5,5
y = 2

所以你知道你必须将它乘以2得到结果。 要在开始时解决您的问题,您只需要对结果进行舍入。

这(当然)也适用于比两个更多的x值。

当你意识到你必须处理你无法处理的分数时,你必须将它们围绕起来。所以我的建议是将结果向下舍入,当你向上舍入时(反之亦然)。