Comments 18
Очевидно, что p(15)=1 и p(14)=1. А вот p(n)=p(n+1)+(n+2). То есть мы снова получаем всю ту же последовательность Фибоначчи. Исключением является только p(1)=p(3).
WAT
За такую рекурсию руки отрывать надо.
неэффективность алгоритмов экспоненциальной сложности не отменяет факта их существования
Не так с ней то, что она, мягко говоря, неэффективна. Если попробовать с помощью этой процедурки найти не пятнадцатое, а, скажем, пятидесятое число Фиббоначи, она будет работать неприличное время, либо вообще вызовет переполнение стека.
Интересно, минусующие это осознают?
Интересно, минусующие это осознают?
Это обучающая лекция. И если не на ней, то где еще показывать разницу между эффективными и неэффективными алгоритмами? Ну и этот материал написан для учеников 8-ого класса.
Вы таки определитесь, «показывать разницу» или «для восьмого класса».
А что, одно другому мешает? Или в 8 классе можно кодить не заморачиваясь по поводу сложности алгоритма?
Хорошо. Как, по-вашему, должен выглядеть план урока?
Этот материал — конспект реальной двухчасовой лекции, которую я читал 8 классу. Перед школьниками была поставлена задача, после чего их рассуждения постепенно направлялись в нужном направлении. После решения математической задачи, предлагалось описать алгоритм программы для ее решения. Предложенные алгоритмы сразу оценивались на предмет эффективности. Подробно разбирались причины экспоненциальной сложности рекурсивного алгоритма. Реализация алгоритмов была оставлена в качестве домашнего задания.
Этот материал — костяк лекции, детали меняются в зависимости от реакции школьников.
Этот материал — костяк лекции, детали меняются в зависимости от реакции школьников.
От этого примера рекурсии волосы встают дыбом, в том числе и на голове. Есть мнение, что его лучше вообще не показывать. Потом эти детишки придут в институт и будут писать что-то похожее, а увидев, как это работает — станут пользоваться исключительно циклами и считать рекурсию говном. И это я не ужастики рассказываю, а говорю, основываясь на опыте.
Методическая ценность этого куска кода вместе с «замечательным фактом» — отрицательна. Даже если на его примере «показывать разницу между эффективным и неэффективным алгоритмом» — всё равно больше гемора, чем пользы.
Методическая ценность этого куска кода вместе с «замечательным фактом» — отрицательна. Даже если на его примере «показывать разницу между эффективным и неэффективным алгоритмом» — всё равно больше гемора, чем пользы.
Sign up to leave a comment.
Числа в себе