Сумма и произведение элементов массива
Back Home Up Next

Пусть одномерный массив вещественных или комплексных чисел vp(p = 0, 1, ... , n-1; n³1) задан компонентами вектора  v = (v0 , v1, ... ,vn-1)T.

адача 4. Составить рекурсивную программу-функцию, возвращающую сумму S компонентов вектора vS = v0 + v1 + ... + vn-1.

Решение. Определение суммы n слагаемых в виде:

рекурсивно по своей сути. Сумма n слагаемых есть сумма первых (n - 1)-го слагаемого плюс сумма последнего слагаемого. Этот факт и положен в основу определения функции summa(v), где 
v
= (v0, v1, ... ,vn-1)T
:

Заметим, что декомпозицию можно провести и из такого представления суммы:

Соответствующая рекурсивная функция sum(v) могла бы выглядеть так:

И хотя в данном случае вычисления по функции sum(v) не являются более эффективными, чем по summa(v), подобная дихотомия иногда себя вполне оправдывает, существенно уменьшая общее количество рекурсивных вызовов и улучшая временные характеристики алгоритма.

адача 5. Составить рекурсивную программу-функцию, возвращающую произведение P компонентов вектора v: P = v0×  v1× ...×  vn-1.

Решение. Определение произведения n сомножителей в виде:

как и соответствующее определение суммы, рекурсивно по своей сути. Произведение n сомножителей есть произведение первых (n - 1)-го сомножителей, умноженное на последний сомножитель. Отсюда и определение функции product(v), где v = (v0 , v1, ... ,vn-1)T:

Home Содержание Схемы ООД Доска объявлений Поиск