Veuillez considérer la boucle triple imbriquée suivante:
for (int i = 1; i <= n; ++i)
for (int j = i; j <= n; ++j)
for (int k = j; k <= n; ++k)
// statement
L'instruction ici est exécutée exactement fois. Quelqu'un pourrait-il expliquer comment cette formule a été obtenue? Je vous remercie.
Réponses:
Vous pouvez compter le nombre d'exécutions de la boucle for la plus interne en comptant le nombre de triplets pour lesquels elle est exécutée.(i,j,k)
Par les conditions de boucle, nous savons que: . Nous pouvons le réduire au problème de combinatoire simple suivant.1≤i≤j≤k≤n
Donc, nous avons juste besoin de compter le nombre de façons de choisir 3 boîtes parmi boîtes qui est ( n + 2n+2 .(n+23)
la source
pour moi, il est plus facile de remarquer que la boucle intérieure est exécutée fois et que le nombre total d'exécutions dans la boucle intérieure estn−i
cela peut être réécrit comme et est exécuté n fois, donc le nombre total d'exécutions est∑n−ij=0n−i−j n
la source