Рубрики
Без рубрики

Фибоначчи в одной линии Python

Самая простая реализация Фибоначчи в Интернете.

Автор оригинала: Chris.

Когда я гугламил «Фибоначчи Питон» сегодня, я нашел много алгоритмов (большинство из них легко понять). Но я задавался вопросом – есть ли Python One-Liner, чтобы найти Фибоначчи Числа в самый краткий способ? Как оказывается, есть! Читайте дальше, чтобы узнать, как писать алгоритм FIBONACCI в одной строке кода Python.

Популярный итальянский математик Фибоначчи (оригинальное название: «Леонардо Пиза»), представленные в 1202 году числа Фибоначчи – с удивительным наблюдением, что эти цифры происходят везде в различных областях, таких как математика, искусство и биология.

Определение

Какие номера фибоначчи? Числа фибоначчи – это количество серии Fibonacci. Серия начинается с чисел 0 и 1. Каждый следующий элемент серии является суммой двух предыдущих серийных элементов. Это уже алгоритм для расчета серии Fibonacci!

Код

Рассмотрим следующую проблему: Учитывая номер N> 2. Рассчитайте список первых n фибоначчи в одной строке кода (начиная с первого числа Fibonacci 0)!

# Dependencies
from functools import reduce

# The Data
n = 10

# The One-Liner
fibs = reduce(lambda x, _: x + [x[-2] + x[-1]], [0] * (n-2), [0, 1])

# The Result
print(fibs)

Листинг: Вычисление серии FIBONACCI в одной строке кода Python.

Попробуйте сами в нашем интерактивном фрагменте кода:

Упражнение : Какая вывод этого кода фрагмент?

Как это работает

Начнем с функции уменьшения – как это работает? Рассмотрим функцию уменьшения с тремя параметрами: Уменьшите (функцию, утечку, инициализатор).

«Применить функцию двух аргументов кумулятивно к элементам последовательности, слева направо, чтобы уменьшить последовательность до одного значения. Например, снижение (лямбда x, y: x + y, [1, 2, 3, 4, 5]) рассчитывает (((((1 + 2) +3) +4) +5). Левый аргумент, X, это накопленное значение и правильный аргумент, y, это Обновить значение из последовательности. Если присутствует дополнительный инициализатор, он размещен перед элементами последовательности в Расчет, И служит по умолчанию, когда последовательность пуста. Если инициализатор не дан и последовательность Содержит только один элемент, первый элемент возвращается. “

Функция уменьшения полезна, если вы хотите агрегировать информацию о состоянии, которая просто вычисляется «на лету». Например, вы вычисляете новый номер Fibonacci на основе предыдущих двух номеров Фибоначчи, которые только что были вычислены. Это сложно добиться с пониманием списка (см. Главу 3), поскольку вы не можете (со стандартным средством) доступа к вновь созданным значениям из понимания списка.

В головоломке мы используем снижение функции уменьшения (функцию, утечку, инициализатор). С идеей последовательно добавления нового номера фибоначчи к объекту Asomegator, который включает в себя одно значение за раз, начиная с указанного объекта, как указано функцией. Здесь мы используем простой список как объект агрегатора с двумя начальными числами фибоначчи [0, 1]. Рекомендайте, что объект агрегатора передан как первый аргумент функции (в нашем примере X). Второй аргумент является следующим элементом от уравновешиваемого. Тем не менее, мы инициализировали то, что имеется потенциал (N-2) фиктивных значений – просто заставить уменьшить функцию для выполнения функции (N-2) раз. Следовательно, мы используем параметр выброса «_», чтобы указать, что мы на самом деле не заинтересованы в этом. Вместо этого мы просто добавляем новый номер фибоначчи к списку х агрегатора X, рассчитанный как сумма предыдущих двух чисел Фибоначчи.

Таким образом, вы улучшили свое понимание другого важного шаблона для Python One-Liners: используя функцию «Уменьшить», чтобы создать список, который динамически использует свеже обновленные или добавленные элементы списка для вычисления новых элементов списка. Вы найдете этот полезный шаблон довольно часто на практике.

Python One-Liners Книга

Python Programmemers улучшит свои навыки информатики с этими полезными одноклассниками.

Python One-listers научит вас читать и писать «одноклассники»: краткие заявления полезных функций, упакованных в одну строку кода. Вы узнаете, как систематически распаковать и понимать любую строку кода Python и писать красноречие, мощно сжатый Python, как эксперт.

Пять главных глав на пять глав обложки советы и трюки, регулярные выражения, машинное обучение, самые темы науки о данных и полезные алгоритмы. Подробные объяснения одноклассников вводят ключевые концепции компьютерных наук и повысить ваши кодировки и аналитические навыки. Вы узнаете о продвинутых функциях Python, такие как понимание списка, нарезки, нарезки, функции лямбда, регулярные выражения, карта и уменьшения функций и нарезки нарезки. Вы также узнаете, как:

Используйте структуры данных для решения проблем реальных проблем, например, использование булевой индексации для поиска городов с загрязнением выше среднего Используйте Numpy Основы, такие как массив, форма, ось, тип, вещание, расширенная индексация, нарезка, сортировка, поиск, агрегация и статистика Рассчитайте базовую статистику многомерных массивов данных и алгоритмы K-означает для безоговорочного обучения Создайте более усовершенствованные регулярные выражения с помощью группировки и названных групп, отрицательные LookAeads, сбежавшие символы, пробелы, наборы символов (и наборы отрицательных символов) и жадные/негридические операторы Понимать широкий ассортимент темы компьютерных наук, включая анаграммы, палиндромы, сверты, перестановки, факториалы, простые числа, цифры фибоначчи, обфускации, поиск и алгоритмическую сортировку

К концу книги вы узнаете, как писать Python в его самых утонченных, и создавать краткие, красивые куски «Python Art» в простой строке.

Получите свой Python One-Liners сейчас !!

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python одноклассники (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

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

Оригинал: “https://blog.finxter.com/fibonacci-in-one-line-python/”