Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm &引用;至于;循环所有可能的组合,无需重复_Algorithm_Loops_Combinations_Variations - Fatal编程技术网

Algorithm &引用;至于;循环所有可能的组合,无需重复

Algorithm &引用;至于;循环所有可能的组合,无需重复,algorithm,loops,combinations,variations,Algorithm,Loops,Combinations,Variations,我有一个值表,我需要比较所有值。问题是,我不想两次比较相同的值(例如,循环比较值1-2、1-3、2-1和2-1与1-2相同)。我在一个循环中写了一个循环,如下所示: for (int i = 0; i < numberOfSets; i++) { for (int j = 1; j < numberOfSets; j++) { //compare element i and j here } } for(int i=0;i

我有一个值表,我需要比较所有值。问题是,我不想两次比较相同的值(例如,循环比较值1-2、1-3、2-1和2-1与1-2相同)。我在一个循环中写了一个循环,如下所示:

for (int i = 0; i < numberOfSets; i++) {
        for (int j = 1; j < numberOfSets; j++) {

        //compare element i and j here
    }
}
for(int i=0;i
但是如何修改此循环以跳过重复?到目前为止,我尝试的是在I==j时增加j:

for (int i = 0; i < numberOfSets; i++) {
        for (int j = 1; j < numberOfSets; j++) {


            if(i == j) {
                j++;
            } else {
                //compare element i and j
            }
    }
}
for(int i=0;i

但它似乎不能正常工作。有没有更好的方法来循环我想要的方式

只需使用
j=i+1
启动内部循环即可

for (int i = 0; i < numberOfSets; i++) {
    for (int j = i + 1; j < numberOfSets; j++) {
        // do stuff
    }
}
for(int i=0;i
只需使用
j=i+1
启动内部循环即可

for (int i = 0; i < numberOfSets; i++) {
    for (int j = i + 1; j < numberOfSets; j++) {
        // do stuff
    }
}
for(int i=0;i
for(int i=0;i
内部循环跳过外部循环中包含的元素(int i=0;i
内环跳过外环

Start
j
at
i
中包含的元素,而不是0。从i+1Start
j
at
i
开始内环,而不是0。从i+1I开始内环,我不知道为什么我不能解决这个问题。谢谢。我不知道为什么我没能弄明白。非常感谢。