繁体   English   中英

将一个数组分配给另一个

[英]Assigning an array to another

向数组分配函数(数组)的返回值时遇到问题。

public static int[] calculeaza_P(int poli[], int n, int k, int p) {
    int P[] = new int[n];
    //calculam mesajul, P(0)....P(n-1) se obtin inlocuind in polinom cu valoare
    for (int i = 0; i < n; i++) {
        //initializare cu a0//elementul liber din polinom
        P[i] = get_unsemnificative_coef(poli, 0);
        //puterile i....i^k-1
        for (int j = 1; j < k; j++) {
            //P(x)=(a_1)*(i^1)+....(a_k-1)*(i^k-1)
            P[i] = P[i] + get_unsemnificative_coef(poli, j) * (int) Math.pow(i, j);
        }
        //modulo p
        P[i] = P[i] % p;

    }
    return P;
}

在我的主要方法中

 public static void main(String[] args) {
    int p = 7;// nr prim pe l biti, 2^l<=p<=2^(l-1)
    int poli[] = new int[]{2, 3, 4};//a_k-1......a1,a0 numere <p
    int k = poli.length;//lungimea sirului
    int s = 1;//nr erori de corectat
    int n = k + 2 * s;//nr de P(x), sau lungimea lui C'

    System.out.println("Polinomul initial:" + print_poly(poli));
    ////////
    //generarea P(x) si mesajului codificat
    System.out.println("De la dreapta la stanga, P(x):");

    int[] P = new int[n];
    P= calculeaza_P(poli[], n, k, p);

    for (int i = 0; i < P.length; i++) {
        System.out.print("P(" + i + ")=" + P[i] + " ");
    }
    System.out.println();
    System.out.println();
    // System.out.println("Mesaj initial corect: " + mesaj);
    //schimb 1 bit
    int poz = 2;
    //int mesajgresit = S_SchimbaBit(mesaj, poz);
    //System.out.println("Mesaj primit eronat: " + mesajgresit);
    System.out.println();
}

它告诉我.class在尝试为P分配函数值时的期望值。 我究竟做错了什么?

您似乎打错了字。 应该是以下int[] P = new int[n];

calculeaza_P的调用包含语法错误,应为

P= calculeaza_P(poli, n, k, p);

代替

P= calculeaza_P(poli[], n, k, p);

还要注意, P的初始化是无用的,因为此后该变量将直接被calculeaza_P的结果覆盖。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM