本文介绍了循环i和j,其中i!= j的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

例如,我需要获取带有数字{0,1,2}的2值数组的所有组合,其中两个数字不相同。
我得到

For example I need to get all combinations of 2-values array with numbers {0, 1, 2} where this two numbers are not the same. I get

0 1
0 2
1 0
1 2
2 0 
2 1

而我忽略

0 0
1 1
2 2

现在我将

  for (int i= 0; i < L ; i++) {
                for (int j = 0; j < L; j++) {
                    if (i!= j) {

但是它很慢吗?
有什么解决方案吗? L将> 4000。

but it is very slow?Any solution for this? L will be > 4000.

我正在做的事情是找到将矩阵分解为4个子矩阵的每种组合

What am I doing is finding every combinations of splitting matrix to 4 sub-matrices

示例:

 3 | 0   2  -8  -8
 5 | 3   2   2   3
 2 | 5   2   1   4
 -------------------
 3   4  -1 |  4  2
-3   6   2 |  4  3

并使用总和表计算其总和。

and computing their sum using sum-table.

相关问题:将矩阵拆分成4个子矩阵,它们的和之差最小

所以对于Matix,我有一条水平线和两条垂直线,并且我正在计算4的和矩阵,但两条垂直线不应构成一条大垂直线,所以i!= j。

So for matix I have one horizontal line and two vertical and I am computing sum of 4 matrices, but two vertical lines should not crate one big vertical line, so i != j.

UPDATE 1 的顺序对是相关的

推荐答案

您可以通过以下方式提高性能:

you could improve the perfomance by:

for (int i= 0; i < L ; i++) {
                for (int j = i + 1 ; j < L; j++) {
System.out.println.(i + " " + j + "\n" + j + " " + i);
}}

这篇关于循环i和j,其中i!= j的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!