Java 请帮助我理解此函数';实施

Java 请帮助我理解此函数';实施,java,discrete-mathematics,Java,Discrete Mathematics,我试着写一个函数。该函数被赋予一个从{1,2,…,n}到整数集的函数f,确定f是否为一对一 我写了这段代码,但有点不对劲 public class Main { public static void isBijective(int A[],int B[]){ int i,j,count; for(i = 0;i<B.length;i++){ B[i]=0; } count = 0; for (j=0;j<A.leng

我试着写一个函数。该函数被赋予一个从{1,2,…,n}到整数集的函数f,确定f是否为一对一

我写了这段代码,但有点不对劲

public class Main {

public static void isBijective(int A[],int B[]){

    int i,j,count;

    for(i = 0;i<B.length;i++){

        B[i]=0;
    }

    count = 0;

    for (j=0;j<A.length;j++){

        if (A[j]==0){

            A[j] = 1;
            count = count+1;

        }
    }

    if (count==B.length){

        System.out.println("is bijective");

    }else{
        System.out.println("not bijective");
    }
}



    public static void main(String[] args) {


        int A[] = {1,2,3,4,5};
        int B[] = {1,2,3,4,5};


        isBijective(A,B);

    }
}
公共类主{
publicstaticvoid是双射的(inta[],intb[]{
int i,j,计数;

对于(i=0;i您将所有的B[]值设置为0,所有的A[]值为1。此外,您的计数等于0,它将始终等于n,因此,除非您有一个长度为0的数组,否则它将始终转到else语句。您需要重新构造代码。

如果您的代码没有执行它应该执行的操作,则应使用调试器修复代码,返回并用铅笔和纸重新执行算法。什么你在这里得到的值显然永远不会起作用,因为你的计数是基于A中0的数量,而A中0的数量不包含任何值。这有什么意义呢?你的
A
数组都没有
0
值,因此
count
保持为0。