问题描述
例如,我需要获取带有数字{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.
所以对于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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!