Я прошу вас понять, что я не очень хорош в математике, поэтому объяснение может быть немного глупым.
Для того, чтобы 'if(a[i] + j[i] + k[i])
оператор' внутри кода был выполнен Переменные i, j, и k, которые указывают индекс массива 'a' в Tripple для l oop, должны соответствовать условию оператора (0<= i <j<k <N)
, верно?
Например, N равно 4. Кажется, что оно доступно через перестановку (4P3 = 4 ^ 3), которая выбирает три из четырех, но если 4 выбрано в «i», как показано на рисунке выше, вы можете видеть, что прогресс заблокирован в «j» для -l oop (j = 4 + 1; j <4; j ++). </p>
Итак, мы можем не получите число раз, когда оператор if будет выполняться с простой последовательностью.
Нам нужна комбинация ( nCr ) .
Когда индекс переходит от 0 к N-1, число случаев (i, j, k), которые удовлетворяют i < j < k
(=> если оператор может выполняться), можно получить по формуле nC3.
Согласно этой формуле, если выражение равно , выполнить точно N x (N-1) (N-2) / 6 раз
Я надеюсь, вы понимаете это ну, а если нет, пожалуйста, оставьте комментарий! Хорошего дня!