Email or username:

Password:

Forgot your password?
astral0pitek

Пример стандартного обучающего материала по рекурсивным вызовам на примере поиска числа фибоначи (также пример неправильного использования рекурсии):

```python
def fibonacci_revursive(n: int) -> int:
if n <= 1:
return n
else:
return fibonacci_revursive(n - 1) + fibonacci_revursive(n - 2)
```

10 comments
𝙹𝚘𝚑𝚊𝚗

@astral0pitek Кек, ChatGPT выдала то же самое, когда я попросил «неэффективное решение» 🙂

Оно же в цикле считается. Может, это был именно пример рекурсии на неудачном примере с фибоначи?

astral0pitek

@johan помни, что ChatGPT это всё же генеративная сеть, которая генерирует ответ на основе обучающего материала.

Тот же "Нейро" от яндекса мне выдал рекурсивный метод как самый неэффективный написав, что "Это обусловлено тем, что одни и те же числа высчитываются несколько раз", и привёл в качестве эффективных методов поиска числа фибоначчи привёл "Метод динамического программирования", "Мемоизацию" и "Итеративный метод"

Так что тебе скорее всего просто не повезло на генерацию текста

𝙹𝚘𝚑𝚊𝚗

@astral0pitek Почему не повезло. Она и про мемоизацию рассказала, lru_cache и вот это всио.

astral0pitek

@johan А, ты писал по поводу неэффективного решения про рекурсию или про вариант где цикл for?

А то кажется произошло недопонимание с моей стороны

𝙹𝚘𝚑𝚊𝚗

@astral0pitek

Приведи пример неэффективного вычисления с рекурсией
ChatGPT сказал:
ChatGPT

Пример неэффективного вычисления числа Фибоначчи с использованием рекурсии выглядит так:

def fibonacci_recursive(n: int) -> int:
if n <= 1:
return n
return fibonacci_recursive(n - 1) + fibonacci_recursive(n - 2)

Почему этот код неэффективен?

Повторяющиеся вычисления: Для вычисления числа Фибоначчи F(n)F(n), функция вызывает F(n−1)F(n−1) и F(n−2)F(n−2). Но для каждого из этих вызовов снова вычисляются их поддеревья. Это приводит к экспоненциальному росту числа вызовов.

@astral0pitek

Приведи пример неэффективного вычисления с рекурсией
ChatGPT сказал:
ChatGPT

Пример неэффективного вычисления числа Фибоначчи с использованием рекурсии выглядит так:

def fibonacci_recursive(n: int) -> int:
if n <= 1:
return n
return fibonacci_recursive(n - 1) + fibonacci_recursive(n - 2)

astral0pitek

@johan да, значит недопонимание произошло с моей стороны. Поскольку ты упомянул про цикл, я подумал, что ты говорил про вариант с "for _ in range(n)".

Ну сейчас да, есть тот же ChatGPT, но мой посыл в основном заключался в моей абсолютной разочарованности в образовательном процессе как от человека, который повидал и процесс обучения со стороны студента, и процесс обучения со стороны системного администратора, когда преподаватель по программированию не может нажать на кнопку для включения компа.

𝙹𝚘𝚑𝚊𝚗

@astral0pitek

преподаватель по программированию не может нажать на кнопку для включения компа.

Да ладно!

astral0pitek

@johan да, и такое бывало. Но самое большое количество случаев это когда приходили преподаватели по программированию (в основном уже в сентябре во время учебного процесса) и просят установить им Visual Studio не уточняя ни какие им модули нужны, ни какие версии... И даже иногда не удавалось выпытать это из преподавателей и приходилось ходить к ним на пары смотреть что им действительно нужно и доустанавливать на месте во время пар.

𝙹𝚘𝚑𝚊𝚗

@astral0pitek По ходу в преподаватели не от хорошей жизни идут. Могли бы программировать — программировали бы? ;-)

astral0pitek

@johan я бы мог согласиться, но то как они топырили пальцы мне говорило об обратном)

В смысле я думаю, что они просто больше не могли найти работу из-за того какие они есть и из-за своих стагнированных знаний. А на зарплаты учителей и преподавателей обычно и так найти никого не могут

Go Up