找出计算平方和的最低成本

时间:2016-02-24 12:22:24

标签: java algorithm

如何处理以下问题?

  

给定一个整数数组,平方和被定义为总和   所有元素的正方形。鉴于改变元素x的成本   数组到y是(x-y)^ 2,一旦更改的元素不能更改   再次。更改给定的数组元素以获得所需的平方和。

例如:

  
      
  • 假设数组是{3,3,1},并且所需的平方和是6.我们可以将3改为3,然后将3改为2,这样数组变为{1,2,1}或{2,1,   1}和1 ^ 2 + 2 ^ 2 + 1 ^ 2 = 6即所需的总和,改变成本是   (3-2)^ 2 +(3-1)^ 2 = 5.
  •   

1 个答案:

答案 0 :(得分:1)

让我试着重新解决这个问题。

你从N维空间中的一个点开始,例如{3,3,1},找到与sqrt(6)的原点有距离的所有整数点集的最近点(或者是6的平方和)

假设是这种情况,你可以;

  • 确定具有所需距离的整数点的所有排列。
  • 找到所有匹配的值,例如在这种情况下,1是初始点和可能的解决方案。
  • 找到最接近匹配可用值的维度,从最大的第一个开始。
  • 重复,直到找到最接近的匹配值。

这应该为您提供尽可能小的解决方案。要确认这一点,您可以使用暴力探索所有可能的匹配。