ПОСЛЕДОВАТЕЛЬНОСТЬ ХОФШТАДТЕРА PYTHON ГЕНЕРАТОР

Последовательность Хофштадтера (Hofstadter sequence) – это последовательность чисел, которую можно определить следующим образом:

a(0) = 0
a(n) = n - a(a(n - 1)), n > 0

В Python, можно сгенерировать эту последовательность при помощи генераторов:

def hofstadter_sequence():
a = [0]
i = 1
while True:
yield a[-1]
a.append(i - a[a[-1]])
i += 1

Чтобы сгенерировать первые 10 элементов, необходимо выполнить следующий код:

for i, elem in enumerate(hofstadter_sequence()):
if i >= 10:
break
print(elem)

Этот код выведет следующие числа:

0
1
1
2
2
3
4
4
5
5

49 Функция генератор. Создание генератора при помощи yield Python

48 Генераторы и итераторы. Выражения -генераторы в Python

#24. Итератор и итерируемые объекты. Функции iter() и next() - Python для начинающих

Yield Python. Полный урок по генераторам Python с нуля

46 Генераторы списков Python - List comprehension

Чем Генераторы отличаются от Итераторов в Python?

Iterators vs. Generators in Python : Data Science Code

BLGPG-62E1070337E3-24-11-24-01

Новые материалы: