Joh*_*Dow 1 java math combinations combinatorics
例如,我需要得到2值数组的所有组合,数字为{0,1,2},其中这两个数字不相同.我明白了
0 1
0 2
1 0
1 2
2 0
2 1
Run Code Online (Sandbox Code Playgroud)
我忽略了
0 0
1 1
2 2
Run Code Online (Sandbox Code Playgroud)
现在我用
for (int i= 0; i < L ; i++) {
for (int j = 0; j < L; j++) {
if (i!= j) {
Run Code Online (Sandbox Code Playgroud)
但它很慢?对此有何解决方案?L将> 4000.
我在做什么是找到分裂矩阵到4个子矩阵的每个组合
例:
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
Run Code Online (Sandbox Code Playgroud)
并使用sum-table计算它们的总和.
相关问题:将矩阵拆分为4个子矩阵,其总和之间的差异最小
所以对于matix,我有一条水平线和两条垂直线,我计算4个矩阵的总和,但是两条垂直线不应该包围一条大的垂直线,所以i!= j.
更新1对的顺序是相关的
你可以通过以下方式改善性能:
for (int i= 0; i < L ; i++) {
for (int j = i + 1 ; j < L; j++) {
System.out.println.(i + " " + j + "\n" + j + " " + i);
}}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3595 次 |
| 最近记录: |