这是我的问题: 我有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。
谢谢!
答案 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值。
当你意识到你必须处理你无法处理的分数时,你必须将它们围绕起来。所以我的建议是将结果向下舍入,当你向上舍入时(反之亦然)。