verkhola: (Default)
[personal profile] verkhola
В первой половине дня мироздание как будто специально не давало мне сделать очередной задание по курсу. Постоянно шли звонки, то по городскому телефону, то по мобильному. Но задание я всё-таки сделала, пусть не так, как сделал его преподаватель. Что-то рекурсия мне тяжело даётся...

Света [livejournal.com profile] svet_k, к тебе вопрос.

Условие задачи: разработать функцию super_fibonacci(n, m), которая принимает два аргумента: положительные целые числа n и m (0 < n, m <= 35), и возвращает число: n-й елемент последовательности супер-Фибоначчи порядка m.
Последовательность Фибоначчи - Это последовательность чисел, в которой каждый элемент равен сумме двух предыдущих. Последовательность супер-Фибоначчи порядка m - это последовательность, в которой каждый элемент равен сумме m предыдущих. Первые m элементов (с порядковыми номерами от 1 до m) будем считать единицами.
Решение преподавателя:
def super_fibonacci(n, m):
if n<=m:
return 1
else:
sum = 0
for i in range(1, m+1):
previous = super_fibonacci(n-i, m)
sum = sum + previous
return sum

Например, я вызываю функцию с такими параметрами:
super_fibonacci(9, 3)
Я не могу понять, как работает эта рекурсия, чему будет равно previos при первом проходе цикла?

И о шоппинге. Неожиданно купили Лёше ботинки осенне-весенние. За 735 грн., 42 размер., кожаные. Скидка с 2200 грн., неплохо так?

Date: 2015-02-20 01:51 pm (UTC)
From: [identity profile] men-mih.livejournal.com
Надо на занятиях, сразу задавать вопрос преподавателю.
Может и другим студентам было не понятно, а все промолчали ((

Date: 2015-02-20 01:56 pm (UTC)
From: [identity profile] verkhola.livejournal.com
Это дистанционный курс. Я на форуме написала, но пока не ответили.

Date: 2015-02-20 03:34 pm (UTC)
From: [identity profile] svet-k.livejournal.com
ужас :)
как хорошо, что мне не надо на работе такие рассчёты писать :).
сразу скажу, что рекурсию вообще никогда не использую - мне кажется, что это такая палка о двух концах...
ну ладно.
а у тебя Питон есть на компе дома? жалко, что я на работе в ЖЖ не хожу, я бы тебе вывела программно последовательность, было бы проще и наглядней.
а так вот давай тогда вместе мозг ломать, что ли :). только ты напрасно начала с этой вводной :(9,3). 3(м) - это типа глубина, т.е. количество суммируемых чисел, так ведь? в обычной последовательности Фибоначчи вроде 2 числа предыдущих суммируют, а у вас супер-Фибоначчи, поэтому 3 числа надо сложить каждый раз. мне кажется, что проще вообще начинать с (1,3) и дальше последовательно всё считать. тогда наглядно будет видно, как программа работает. а ты сразу хочешь элемент из последовательности увидеть(9).

miloro

Date: 2015-02-20 05:50 pm (UTC)
From: (Anonymous)
http://www.pythontutor.com/visualize.html#code=def+super_fibonacci(n,+m)%3A%0D%0A++++if+n%3C%3Dm%3A+%0D%0A++++++++return+1%0D%0A++++else%3A%0D%0A++++++++sum+%3D+0%0D%0A++++for+i+in+range(1,+m%2B1)%3A%0D%0A++++++++previous+%3D+super_fibonacci(n-i,+m)%0D%0A++++++++sum+%3D+sum+%2B+previous%0D%0A++++return+sum%0D%0A++++%0D%0Aprint+super_fibonacci(4,+2)++++&mode=display&origin=opt-frontend.js&cumulative=false&heapPrimitives=false&textReferences=false&py=2&rawInputLstJSON=%5B%5D&curInstr=38

Date: 2015-02-23 02:17 pm (UTC)
From: [identity profile] verkhola.livejournal.com
Свет, извини, я тебя загрузила. Мне уже на форуме растолковали, дали ссылку на сайт, где пошагово видно, что и как происходит. Одна беда: сама я пока на такую программу не способна...

Date: 2015-02-23 02:45 pm (UTC)
From: [identity profile] svet-k.livejournal.com
нене, не извиняйся! и вдруг ещё какие вопросы будут - спрашивай, может я и помогу :)
на самом деле, беды вообще никакой не вижу - это пример довольно нежизненный :).
если хочешь, я на работе пороюсь, у меня должны быть ссылки на интересные ресурсы по Питону. я тебе ссылки пришлю.

Date: 2015-02-23 02:46 pm (UTC)
From: [identity profile] verkhola.livejournal.com
Понимаешь, я думала, что уже поняла рекурсию. Но этот пример меня поставил в совершеннейший тупик.

Бросай, буду благодарна.

Profile

verkhola: (Default)
verkhola

January 2026

S M T W T F S
    123
45678910
11 121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 16th, 2026 07:35 am
Powered by Dreamwidth Studios