Пусть, скажем, у нас есть алгоритм с циклом. Если переменная цикла принимает значение 5, то цикл выполняется 5 раз, а если значение равно 20, то двадцать. Вообще, если значение переменной цикла равно M, то цикл выполняется M раз. В целом если переменная цикла пробегает все значения от 1 до N, то суммарное число выполнений цикла равно сумме всех натуральных чисел от 1 до N. Мы записываем эту сумму в виде
N конечное значение переменной суммирования ∑i i=1 начальное значение переменной суммирования
Если какое-нибудь значение записано в виде подобной суммы, то его зачастую стоит упростить, чтобы результат можно было сравнивать с другими подобными выражениями. Не так уж просто сообразить, какое из двух чисел
и
больше. Поэтому для упрощения суммы можно пользоваться следующими формулами, в которых C - не зависящая от i постоянная:
При упрощении сумм можно сначала разбить их на более простые суммы с помощью вышеприведённых равенств, а затем заменять суммы с помощью остальных тождеств.
N ∑(i2-i) i=11
и
N ∑(i2-20i) i=0
больше. Поэтому для упрощения суммы можно пользоваться следующими формулами, в которых C - не зависящая от i постоянная:
N N ∑Ci = C∑i; i=1 i=1 N N-L ∑i = ∑(i+L); i=L i=0 N N L-1 ∑i = ∑i - ∑i; i=L i=0 i=0 N N N ∑(A+B) = ∑A + ∑B; i=1 i=1 i=1 N N ∑(N-i) = ∑i; i=0 i=0Это равенство означает, что сумма чисел от 0 до N равна сумме чисел от N до 0.
При упрощении сумм можно сначала разбить их на более простые суммы с помощью вышеприведённых равенств, а затем заменять суммы с помощью остальных тождеств.
N ∑1 = N; i=1 N ∑C = CN; i=1 N ∑i = ( N(N+1) ) / 2; i=1Это равенство легко запомнить, если разбить числа от 1 до N на пары. Складывая 1 с N, 2 с N-1 и т.д., мы получим набор сумм, каждая из которых равна N+1. Сколько всего будет таких сумм? Разумеется их число равно половине числа разбиваемых на пары элементов, т.е. N/2. Поэтому сумма всех N чисел равна (N/2)*(N+1) = ( N(N+1) ) / 2.
N N(N+1)(2N+1) 2N3+3N2+N ∑i2 = -------------- = -------------; i=1 6 6 N ∑2i = 2N+1 - 1; i=0Это равенство легко запомнить через двоичные числа. Сумма степеней двойки от нулевой до десятой равна двоичному числу 11111111111. Прибавив к этому числу 1, мы получим 100000000000, т.е. 211. Но этот результат на 1 больше суммы степеней двойки от нулевой до десятой, поэтому сама сумма равна 211 - 1. Если теперь вместо 10 подставить N, то мы придём к этому неравенству.
N AN+1 - 1 ∑Ai = ---------- для любого числа A; i=1 A - 1 N ∑i2i = (N - 1)2N+1 + 2; i=1 N ∑(1/i) ≈ ln(N); i=1 N ∑log2(i) ≈ Nlog2(N) - 1,5. i=1