Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
C++
 Аватар для JustLearn
3 / 3 / 1
Регистрация: 21.10.2017
Сообщений: 121

Понимаете ли вы алгоритм чисел Фибоначчи или просто его запоминаете?

24.10.2022, 11:49. Показов 1579. Ответов 21

Студворк — интернет-сервис помощи студентам
Так или иначе занимаюсь программированием уже несколько лет. Учил С++, немного знаю Java, Python, сделал не один сайт на HTML, CSS, JS, PHP, MySQL.

Так что определенный опыт программирования я имею.

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

Ну никак не могу сам вывести формулу...


Так вот вопрос: вы просто запоминаете как программировать данную задачу или действительно ее понимаете и готовы в любой момент без проблем написать программу, выдающую этот самый ряд чисел?

Заранее спасибо
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.10.2022, 11:49
Ответы с готовыми решениями:

Набрать с чисел Фибоначчи в интервале от 1 до 100, только просто числа, а также их порядковые номера в ряду Фибоначчи
Помогите с задачкой Набрать с чисел Фибоначчи в интервале от 1 до 100, только просто числа, а также их порядковые номера в ряду...

Набрать с чисел Фибоначчи в интервале от 1 до 100, только просто числа, а также их порядковые номера в ряду Фибоначчи
Помогите с задачкой... Набрать с чисел Фибоначчи в интервале от 1 до 100, только просто числа, а также их порядковые номера в ряду...

Алгоритм нахождения чисел Фибоначчи
Подскажите,пожалуйста, как описать алгоритм нахождения чисел Фибоначчи

21
 Аватар для FFPowerMan
2156 / 1236 / 508
Регистрация: 11.10.2018
Сообщений: 6,241
24.10.2022, 11:57
Цитата Сообщение от JustLearn Посмотреть сообщение
вы просто запоминаете как программировать данную задачу или действительно ее понимаете и готовы в любой момент без проблем написать программу, выдающую этот самый ряд чисел?
- Да.

Добавлено через 1 минуту
2 числа просто складываются. Стартовые числа 1 и 1. Ты не можешь запомнить?
0
24.10.2022, 12:10

Не по теме:

Цитата Сообщение от FFPowerMan Посмотреть сообщение
Ты не можешь запомнить?
нет, не могу. Да и не должен. Инженер - не должен много знать, а должен умело пользоваться справочной литературой.
Умело пользоваться - учат в институте (в том числе).

Чисто биологически - если бы человек всё помнил - никаких мозгов не хватит всё запомнить.
Поэтому, в жизни отсеивается всё то, с чем НЕ приходится часто сталкиваться/работать.

0
 Аватар для FFPowerMan
2156 / 1236 / 508
Регистрация: 11.10.2018
Сообщений: 6,241
24.10.2022, 12:28
Цитата Сообщение от untyped Посмотреть сообщение
Инженер - не должен много знать,
- Должен.
Цитата Сообщение от untyped Посмотреть сообщение
Умело пользоваться - учат в институте
- Что там уметь-то.
1
 Аватар для Pphantom
2263 / 1519 / 712
Регистрация: 17.03.2022
Сообщений: 4,895
24.10.2022, 12:32
Цитата Сообщение от JustLearn Посмотреть сообщение
Но каждый раз когда-то я время от времени натыкаюсь где-нибудь на задачку по программированию ряда чисел Фибоначчи я не знаю, как ее сделать.
Ну никак не могу сам вывести формулу...
Так вы не можете решить задачу или не можете вывести формулу общего члена? Это немного разные вещи, и вторая действительно посложнее первой.
0
C++
 Аватар для JustLearn
3 / 3 / 1
Регистрация: 21.10.2017
Сообщений: 121
24.10.2022, 15:20  [ТС]
Так вы не можете решить задачу или не можете вывести формулу общего члена?
Не могу решить именно задачу. Формула общего члена - это довольно просто: Fn = Fn-1 + Fn-2
0
 Аватар для Pphantom
2263 / 1519 / 712
Регистрация: 17.03.2022
Сообщений: 4,895
24.10.2022, 15:22
Цитата Сообщение от JustLearn Посмотреть сообщение
Формула общего члена - это довольно просто: Fn = Fn-1 + Fn-2
Мда... понятно.

Если что, это не формула общего члена.
0
C++
 Аватар для JustLearn
3 / 3 / 1
Регистрация: 21.10.2017
Сообщений: 121
24.10.2022, 15:33  [ТС]
FFPowerMan да - это "должен помнить"? Или да - это "не должен"?

Добавлено через 53 секунды
Pphantom, а что тогда формула общего члена?

Добавлено через 9 минут
Pphantom, понятно
0
 Аватар для Pphantom
2263 / 1519 / 712
Регистрация: 17.03.2022
Сообщений: 4,895
24.10.2022, 15:35
Цитата Сообщение от JustLearn Посмотреть сообщение
Pphantom, а что тогда формула общего члена?
https://www.cyberforum.ru/cgi-bin/latex.cgi?F_{n}={\frac {\left({\frac {1+{\sqrt {5}}}{2}}\right)^{n}-\left({\frac {1-{\sqrt {5}}}{2}}\right)^{n}}{\sqrt {5}}}
0
C++
 Аватар для JustLearn
3 / 3 / 1
Регистрация: 21.10.2017
Сообщений: 121
24.10.2022, 15:42  [ТС]
Цитата Сообщение от JustLearn Посмотреть сообщение
Pphantom, понятно
В смысле FFPowerMan
0
677 / 479 / 216
Регистрация: 06.09.2013
Сообщений: 1,312
25.10.2022, 03:56
JustLearn, конечно запоминаем. Не запомнив, странное слово "фибоначчи" с какими-либо числами вообще невозможно никак ассоциировать.
0
383 / 280 / 112
Регистрация: 28.04.2015
Сообщений: 1,726
25.10.2022, 12:09
не знаю
не понимаю
не запоминаю
0
698 / 572 / 75
Регистрация: 20.09.2014
Сообщений: 3,700
26.10.2022, 06:38
JustLearn, у вас возможно синдром самозванца. У меня друг высказывался, что не понимает графы и конечные автоматы, но успешно применял их.
0
C++
 Аватар для JustLearn
3 / 3 / 1
Регистрация: 21.10.2017
Сообщений: 121
26.10.2022, 21:54  [ТС]
woldemas Я имею в виду сам алгоритм решения, например:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
fib1 = 1
fib2 = 1
 
n = int(input("Номер элемента ряда Фибоначчи: "))
n = int(n)
 
i = 0
while i < n - 2:
    fib_sum = fib1 + fib2
    fib1 = fib2
    fib2 = fib_sum
    i = i + 1
 
print("Значение этого элемента:", fib2)
Здесь вы просто запоминаете вот этот момент?

C++
1
2
3
fib_sum = fib1 + fib2
fib1 = fib2
fib2 = fib_sum
Добавлено через 58 секунд
@Mikhaylo понятия не имею о чем вы, но ладно

Добавлено через 3 часа 0 минут
@Mikhaylo загуглил, что такое синдром самозванца. Спасибо за веру в меня)
0
698 / 572 / 75
Регистрация: 20.09.2014
Сообщений: 3,700
27.10.2022, 07:42
Цитата Сообщение от JustLearn Посмотреть сообщение
Здесь вы просто запоминаете вот этот момент?
Вы могли бы использовать массив чисел Фиббоначчи вместо двух переменных. Тогда ничего запоминать не надо было бы.

А вообще в том моменте проглядывается простенький алгоритм swap() - функция, которая обменивает содержимое двух переменных с использованием временной переменной. Этот алгоритм, да, я усвоил, запомнил и усёк, что порядок манипуляции с переменными важен. Однако запоминаю не досконально, а просто начинаю на автомате вводить третью переменную и пытаться перебирать порядок перекладываний.

Добавлено через 4 минуты
Интересно, а все запоминали сколько согласных букв в фамилии Ффиббонначчи?)
0
531 / 180 / 39
Регистрация: 18.08.2012
Сообщений: 907
27.10.2022, 09:01
ну.. раз тут про Фибоначчи никак не успокоятся то, как-раз сегодня на глаза попалось пара примеров из
Game Programming Gems I
C++
1
2
3
4
5
6
      unsigned RecursiveFib(unsigned n)
      {
        if (n<=1)
            return n;
        return RecursiveFib(n-1) + RecursiveFib(n-2);
      }
Believe it or not, this simple function runs in exponential time. It's highly inefficient and should never be used in production code. The function is simplify a stepping-off point for generating a templatized version:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
      template struct Fib
      {
        enum
            {
                // Recursive definition
                Val = Fib::Val + Fib::Val
          };
      };
      
      // Specialization for base cases
      // (termination conditions)
      template <> struct Fib<0> {enum {Val = 0};}
      template <> struct Fib<1> {enum {Val = 1};}
      
      // Make the template appear like a function
      #define FibT(n) Fib::Val
An example "call" to the template via the #define:

std::cout << FibT(4); // Fib<4>::Val
0
485 / 411 / 126
Регистрация: 23.05.2016
Сообщений: 1,653
27.10.2022, 15:25
Цитата Сообщение от JustLearn Посмотреть сообщение
Я имею в виду сам алгоритм решения, например:
Да. Абсолютное большинство людей каждый раз придумывает алгоритм заново.

Разных алгоритмов бесконечно много, все не выучить, сколько ни учи.

К примеру, я могу придумать новое рекуррентное правило для последовательности:
A1 = 1
A2 = 1
A3 = 1
Аn = 5*An-1 - 2*An-3
Алгоритм генерации этой последовательности не выучить, он нигде не описан. Его можно только придумать.

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

По моим наблюдениям, изучающий основы программирования человек проходит через несколько инсайтов. Один из них - уверенность в том, что если какое-то правило можно описать словами или математическими формулами, то по нему всегда можно составить программу. Кстати, именно так вам и отвечают. Что такое числа Фибоначчи можно и не помнить, но если кто-то расскажет, что это такое, то написание алгоритма не вызовет существенных трудностей.

Последовательность Фибоначчи и факториал - самые "затасканные" алгоритмы, их в первую очередь вспоминают, когда хотят привести пример задачи, которую можно решить и циклом и рекурсией. И вы сейчас не сможете понять, решаете вы задачу или вспоминаете решение. Проверьте себя на другой классической задаче - нахождение корня уравнения методом половинного деления. Описание метода можно найти почти везде. Включая школьные учебники. Гуглить "численные методы в школе". Если по описанию метода, не подглядывая в пример алгоритма, который всегда будет где-то рядом с описанием, вы сможете составить программу, значит зря на себя наговариваете, вы и Фибоначчи будете придумывать, а не вспоминать.
1
Модератор
Эксперт функциональных языков программирования
3134 / 2281 / 469
Регистрация: 26.03.2015
Сообщений: 8,877
27.10.2022, 21:31
Цитата Сообщение от untyped Посмотреть сообщение
раз тут про Фибоначчи никак не успокоятся
Нужно использовать алгоритм быстрого возведения в степень.

Цитата Сообщение от Sindbad_M Посмотреть сообщение
Да. Абсолютное большинство людей каждый раз придумывает алгоритм заново.
Согласен. Ну, либо гуглят, если задача не очень простая.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38167 / 21102 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 14
30.10.2022, 09:22
Цитата Сообщение от JustLearn Посмотреть сообщение
Формула общего члена - это довольно просто: Fn = Fn-1 + Fn-2
- это рекуррентная формула. А вот настоящая формула общего члена ряда Фибоначчи - это формула Бине:
Миниатюры
Понимаете ли вы алгоритм чисел Фибоначчи или просто его запоминаете?  
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38167 / 21102 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 14
30.10.2022, 09:26
Цитата Сообщение от Sindbad_M Посмотреть сообщение
Алгоритм генерации этой последовательности не выучить, он нигде не описан. Его можно только придумать.
- нечего тут "учить" или "придумывать". Почитай линейные рекуррентные соотношения. Все давно придумано Леонардом Эйлером.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.10.2022, 09:26
Помогаю со студенческими работами здесь

Алгоритм нахождения n-го члена чисел Фибоначчи
Очень прошу, помогите написать на алгоритмическом языке алгоритм n-го члена чисел Фибоначчи

Как хранить меню в БД или просто прописать его в header
Добрый вечер, нужен ваш совет по поводу такого web - приложения, нужно реализовать такую базу с помощью PHP и MySQL, то есть будут...

Разработайте алгоритм программы, определяющей первые 10 чисел последовательности Фибоначчи
2. Разработайте алгоритм программы, определяющей первые 10 чисел последовательности Фибоначчи, которая формируется следующим образом: F1 =...

Есть ли смысл кодировать скрипт, или его очень просто расшифровать?
Есть ли смысл кодировать скрипт так или его очень просто расшифровать? &lt;?php...

Разработать алгоритм вычисления чисел Фибоначчи. Показать базисное и рекурсивное утверждение
Разработать алгоритм вычисления чисел Фабионаччи. Показать базисное и рекурсивное утверждение. Определить элементарную операцию количество...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru