有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

基于蛮力搜索的java子问题

我是编程新手,在一项必须完成的任务中苦苦挣扎:

我们必须从用户用其值填充的数组中找到最佳子集和,它与pi最接近。此外,我们必须显示最佳和的元素(例如:Array={1,2,3},best subset sum=3,{1,2})

这就是我现在正在努力解决的问题(显示元素),我真的尝试了一切,但没有任何线索。。。有人有主意吗

谢谢你们

double pi = Math.PI; 

        int laenge = zahlen.length; //Length of the Array, with my saved elements from the user
        double summe = 0; 
        int n = (1 << laenge); // All possible sums (2^n)
        double teilmenge[] = new double[n]; //Array which contains all possible sums
        double s1 = Math.abs(teilmenge[0]-pi); //measuring distance with math.abs
        double s2; // var for comparison
        double bestsum = 0;
      

        for (int i = 0; i < (1 << laenge); i++) { 
            summe = 0;
            for (int j = 0; j < laenge; j++) { 
                if ((i & (1 << j)) != 0) {
                    summe += zahlen[j]; // "Zahlen" is my Array which contains the Elements itself
                }
            teilmenge[i] = summe;
                s2 = Math.abs(summe - pi);
                if (s2 < s1) {
                    s1 = s2;
                    bestsum = summe;
                   
            }
        }

        System.out.println("Best sum:  ");
        System.out.println(bestsum);
     

    }

共 (0) 个答案