Добавить
Уведомления

10 полуночных способов посчитать числа Фибоначчи на Ruby

Попробую решить типичную задачу для собеседований несколькими способами. Выберем лучшее и самое производительное. Сама идея решить эту задачу возникла на прошлом стриме, когда один из слушателей сказал, что на собеседованиях в samokat.tech спрашивают, как эффективно посчитать числа Фибоначчи с рекурсией и без мемоизацией. Я честно не решал эту задачу, буду все делать онлайн. - https://github.com/HeavyTechRuby/fibonacci - https://github.com/evanphx/benchmark-ips - https://github.com/sergio-fry/spec_helper/blob/master/spec_helper.rb Timecodes 00:00 - Intro 03:55 - создание проекта 06:47 - Наивная реализация 14:46 - Memoization 29:09 - Benchmark IPS 44:00 - Рекурсивно без мемоизации 01:04:20 - Fast 01:10:00 - Singleton 01:17:00 - Cached with Dependency Injection 01:37:00 - Fast Array 01:44:20 - Перерыв 01:55:30 - Cached with Redis 02:03:35 - Зависание экрана 02:12:21 - Loop 02:16:25 - Объектный вариант, ООП 02:29:08 - Функциональный 02:44:21 - Адаптер для разных реализаций

Иконка канала Сергей Удалов
7 подписчиков
12+
1 просмотр
2 года назад
12+
1 просмотр
2 года назад

Попробую решить типичную задачу для собеседований несколькими способами. Выберем лучшее и самое производительное. Сама идея решить эту задачу возникла на прошлом стриме, когда один из слушателей сказал, что на собеседованиях в samokat.tech спрашивают, как эффективно посчитать числа Фибоначчи с рекурсией и без мемоизацией. Я честно не решал эту задачу, буду все делать онлайн. - https://github.com/HeavyTechRuby/fibonacci - https://github.com/evanphx/benchmark-ips - https://github.com/sergio-fry/spec_helper/blob/master/spec_helper.rb Timecodes 00:00 - Intro 03:55 - создание проекта 06:47 - Наивная реализация 14:46 - Memoization 29:09 - Benchmark IPS 44:00 - Рекурсивно без мемоизации 01:04:20 - Fast 01:10:00 - Singleton 01:17:00 - Cached with Dependency Injection 01:37:00 - Fast Array 01:44:20 - Перерыв 01:55:30 - Cached with Redis 02:03:35 - Зависание экрана 02:12:21 - Loop 02:16:25 - Объектный вариант, ООП 02:29:08 - Функциональный 02:44:21 - Адаптер для разных реализаций

, чтобы оставлять комментарии