Основы объектно-ориентированного программирования на языке C# book | Page 34

2 Oснови алгоритмiзацiı̈ Алгоритм: 1. Покласти i рiвним n, r рiвним 0, рiвним b. 2. Пiднести до степеня i. 3. Помножити на степiнь. 4. Покласти s рiвнiй сумi r i добутку a i на степiнь. 5. Якщо i = 0, то r – результат (стоп). Iнакше покласти i = i − 1, перейти до кроку 2. Послiдовнiсть обчислень за алгоритмом описує вираз a n x n + ... + a 1 x + a 0 . Iснує також iнший алгоритм для розв’язання задач цього класу. Вхiднi данi: тi самi, що й у попереднiй задачi. Результат: такий самий. Змiннi: r, x, i – цiлого типу. Алгоритм: 1. Покласти i рiвним n, x рiвним b. 2. Покласти r рiвним a i . 3. Помножити r на x. 4. Покласти r рiвним добутку. 5. Покласти i рiвним i − 1. 6. Покласти r рiвним r + a i . 7. Якщо i = 0, то r – результат, iнакше перейти до кроку 3. Послiдовнiсть обчислень за цим алгоритмом можна пояснити вира- зом (...(((a n x + a n−1 x + a n−2 )x + a n−3 )x + ... + a 1 )x + a 0 . Такий метод обчислення значення полiнома у точцi називається схемою Горнера. Виразимо складнiсть дiı̈ пiднесення до степеня i як i − 1 операцiй множення. Тодi складнiсть другого алгоритму (за схемою Горнера) у виглядi кiлькостi операцiй додавання та множення дорiвнюватиме 2n, а для прямого алгоритму становитиме n X n +1 n 2 + 3n + 2 n 2 + 2n > 2n. (i + 1) + n = (n + 2) + n = + n> 2 2 2 i=1 34