Bonjour à tous,

je suis tombé sur un algo pas très compliqué, mais j'ai du mal à comprendre l'explication de fréquence, voici l'ago:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
public static int count(int[] a) {
        int n = a.length;
        int count = 0;
        for (int i = 0; i < n; i++) {
1]           for (int j = i+1; j < n; j++) {
2]              for (int k = j+1; k < n; k++) {
3]                   if (a[i] + a[j] + a[k] == 0) {
                        count++;
                    }
                }
            }
        }
        return count;
    }
et ils expliquent que les fréquences de calcul pour les 1], 2], 3] ème lignes sont:
1] N
2] N^2 / 2 - N/2
3] N^3/6 - N^2/2 + N/3


Je me demande pourquoi N^2 est divisé par 2, le N^3 par 6 et N par 3
Ensuite pourquoi c'est N^3/6 - N^2/2 et pas N^3/6 + N^2/2 alors que c'est +N/3 ?


Merci beaucoup :-)

Adrien