это быстро и бесплатно
Оформите заказ сейчас и получите скидку 100 руб.!
ID (номер) заказа
3180781
Ознакомительный фрагмент работы:
Лабораторная работа 3. «Рекурсивные алгоритмы и функции»
Цели работы:
изучить основные понятия, связанные с рекурсией;
познакомиться с примерами реализации рекурсивных функций на языке Python;
получить навыки разработки рекурсивных функций на языке Python.
Краткие теоретические сведения
1. Общая схема определения рекурсивной функции
Рекурсивный алгоритм – это алгоритм, позволяющий свести исходную задачу к одной
или нескольким более простым задачам того же типа.
Функция (подпрограмма) называется рекурсивной, если в ее определении содержится
вызов ее самой.
Рекурсивная функция может вызывать саму се6я непосредственно или косвенно через
другую функцию.
Рекурсии целесообразно применять в задачах, которые можно разбить на множество
меньших подобных задач.
Чтобы определить рекурсию, нужно задать:
рекуррентную формулу;
условие остановки рекурсии (базовый случай или несколько базовых случаев).
Пример 1. Вычислить факториал целого положительного числа n. Напомним, что
n! = n * (n-1)!, где 0!=1.
Программа с использованием рекурсивной функции:
def fact(n):
if n == 0:
return 1
else:
return n * fact (n – 1)
Рекурсивную программу всегда можно преобразовать в итеративную программу,
использующую циклы, которая выполняет те же вычисления. И наоборот, используя рекурсию,
можно реализовать алгоритм, не прибегая к циклам.
Программа вычисления факториала числа без использования рекурсивной функции:
def fact(n):
r = 1
for i in range(1,n+1):
r = r*i
return r
Рекурсивный подход обычно предпочитается итеративному подходу в тех случаях, когда
рекурсия более естественно отражает математическую сторону задачи и приводит к
программе, которая проще для понимания и отладки. Другой причиной для выбора
рекурсивного решения является то, что итеративное решение может не быть очевидным.
Наличие в задаче рекуррентного соотношения позволяет использовать рекурсию.
Например, арифметическая прогрессия – последовательность чисел, в которой каждый
следующий член прогрессии равен предыдущему, увеличенному на разность прогрессии.
Различают прямую и косвенную рекурсию. Прямой (непосредственной) рекурсией
является вызов функции внутри тела этой функции. Косвенной рекурсией является рекурсия,
осуществляющая рекурсивный вызов функции посредством цепочки вызова других функций.
Все функции, входящие в цепочку, тоже считаются рекурсивными.
В рекурсии простейшей формы рекурсивный вызов расположен в конце функции,
непосредственно перед оператором возврата из функции (или возвращаемого значения). Такая
рекурсия называется хвостовой или концевой. Хвостовая рекурсия является простейшей
формой рекурсии, поскольку она действует подобно циклу. Если в программе имеется
хвостовая рекурсия, то ее лучше преобразовать к итерации.
Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников
Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.
Цены ниже, чем в агентствах и у конкурентов
Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит
Бесплатные доработки и консультации
Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки
Гарантируем возврат
Если работа вас не устроит – мы вернем 100% суммы заказа
Техподдержка 7 дней в неделю
Наши менеджеры всегда на связи и оперативно решат любую проблему
Строгий отбор экспертов
К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»
Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован
Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн
Выполнить 2 контрольные работы по Информационные технологии и сети в нефтегазовой отрасли. М-07765
Контрольная, Информационные технологии
Срок сдачи к 12 дек.
Архитектура и организация конфигурации памяти вычислительной системы
Лабораторная, Архитектура средств вычислительной техники
Срок сдачи к 12 дек.
Организации профилактики травматизма в спортивных секциях в общеобразовательной школе
Курсовая, профилактики травматизма, медицина
Срок сдачи к 5 дек.
краткая характеристика сбербанка анализ тарифов РКО
Отчет по практике, дистанционное банковское обслуживание
Срок сдачи к 5 дек.
Исследование методов получения случайных чисел с заданным законом распределения
Лабораторная, Моделирование, математика
Срок сдачи к 10 дек.
Проектирование заготовок, получаемых литьем в песчано-глинистые формы
Лабораторная, основы технологии машиностроения
Срок сдачи к 14 дек.
Вам необходимо выбрать модель медиастратегии
Другое, Медиапланирование, реклама, маркетинг
Срок сдачи к 7 дек.
Ответить на задания
Решение задач, Цифровизация процессов управления, информатика, программирование
Срок сдачи к 20 дек.
Написать реферат по Информационные технологии и сети в нефтегазовой отрасли. М-07764
Реферат, Информационные технологии
Срок сдачи к 11 дек.
Написать реферат по Информационные технологии и сети в нефтегазовой отрасли. М-07764
Реферат, Геология
Срок сдачи к 11 дек.
Разработка веб-информационной системы для автоматизации складских операций компании Hoff
Диплом, Логистические системы, логистика, информатика, программирование, теория автоматического управления
Срок сдачи к 1 мар.
Нужно решить задание по информатике и математическому анализу (скрин...
Решение задач, Информатика
Срок сдачи к 5 дек.
Заполните форму и узнайте цену на индивидуальную работу!