Давши два символи і b , давайте визначимо k - ту рядок Фібоначчі так:
з позначає конкатенацію рядків.
Таким чином у нас буде:
- ...
Дана рядок , утворений п символів, визначить Фібоначчі подстроки як будь-яка подстрока з , який також є рядок Фібоначчі для відповідного виборуі б .
Проблема
Враховуючи , ми хочемо знайти його найдовшу підрядок Фібоначчі.
Тривіальний алгоритм
Припустімо, для кожного положення рядка S , що F ( 2 ) починається там (достатньо перевірити, чи знаки i -й та ( i + 1 ) -th). Якщо це так, перевірте, чи можна його поширити на F ( 3 ) , потім F ( 4 ) тощо. Після цього почніть знову з положення i + 1 . Повторюйте, поки не досягнете позиції n .
Ми повинні принаймні раз поглянути на кожен символ, так що це . Існує лише дві петлі, тому ми можемо сказати, що це
Як я можу використовувати властивості Фібоначчі для пошуку більш чітких меж часу виконання цього алгоритму?