相关疑难解决方法(0)

将数组划分为相等的大小,以使给定函数的值最小

我遇到了以下问题陈述.

您有一个自然数量大小的列表,N您必须将值分配到两个列表AB大小中N/2,以便A元素的平方和最接近元素的乘法B.

示例: 考虑清单7 11 1 9 10 3 5 13 9 12.
优化分布为:
列表A:5 9 9 12 13
列表B:1 3 7 10 11
导致差值abs((5 + 9 + 9) + 12 + 13)^ 2 - (1*3*7*10*11))= 6
因此,您的程序应输出6,这是可以达到的最小差异.

我尝试过的:

我试过贪婪的方法来解决这个问题.我拿了两个变量summul.现在我开始逐个从给定的集合中获取元素,并尝试在变量和计算的当前平方和和乘法中添加它.现在最终确定两组中的一组中的元素,使得组合给出最小可能值.

但是这种方法在给定的示例itselt中不起作用.我无法弄清楚这里可以使用什么方法.

不是要求解决方案的确切代码.任何可能的方法及其工作原因都没问题.

编辑:

来源:CodinGame,社区谜题

java algorithm

8
推荐指数
1
解决办法
644
查看次数

在Java中实现选择符号的好方法是什么?

...最好是用Java.这是我有的:

//x choose y
public static double choose(int x, int y) {
    if (y < 0 || y > x) return 0;
    if (y == 0 || y == x) return 1;

    double answer = 1;
    for (int i = x-y+1; i <= x; i++) {
        answer = answer * i;
    }
    for (int j = y; j > 1; j--) {
        answer = answer / j;
    }
    return answer;
}
Run Code Online (Sandbox Code Playgroud)

我想知道是否有更好的方法来做到这一点?

java combinations binomial-coefficients

2
推荐指数
3
解决办法
1万
查看次数