04 апреля 2026, 06:24 — Кофейная гуща всё чаще перестаёт быть просто отходом после утреннего кофе․ Сегодня мы соединим кофейную магию, древнюю мудрость чисел Фибоначчи и современный язык Python, чтобы «нарисовать» на кофейной гуще морду львенка — символа силы и гармонии․ Как это возможно? Читайте до конца!
Почему именно «морда львенка» и «кофейная гуща»?
- Лев, царь зверей, а его детёныш олицетворяет рождение новой идеи․
- Кофейная гуща, материал, который держит форму и позволяет создавать текстуры, идеально подходящие для «пиксельных» рисунков․
- Числа Фибоначчи задают пропорции, благодаря которым морда выглядит естественно и гармонично․
Краткий ликбез: что такое последовательность Фибоначчи?
Последовательность, где:
F(0) = 0F(1) = 1F(n) = F(n-1) + F(n-2)приn ≥ 2
Получается: 0, 1, 1, 2, 3, 5, 8, 13, 21…
Инструменты и подготовка кофейной «холста»
3․1 Что понадобиться
- 2 столовые ложки свежей кофейной гущи (без сахара)․
- Белый лист плотной бумаги или картона․
- Зубочистка или тонкая палочка для «пиксельной» раскладки․
- Python 3․10+ (желательно в виртуальном окружении)․
3․2 Генерация сетки на основе Фибоначчи
Для морды львенка достаточно 9×9 «кофейных пикселей»․ Размер каждого пикселя выберем равным следующим числам Фибоначчи (в мм): 2, 3, 5, 8, 13, 21, 34, 55, 89․ Это даст нам «золотой» рост визуальных пропорций;
Python-алгоритм: три способа построить ряд Фибоначчи
4․1 Рекурсивный базовый вариант
def fib_recursive(n): if n <= 1: return n return fib_recursive(n-1) + fib_recursive(n-2) print([fib_recursive(i) for i in range(9)])
Минусы: экспоненциальное время O(2ⁿ), подходит только для маленьких n․
4․2 Рекурсия с мемоизацией (быстро и изящно)
from functools import lru_cache @lru_cache(maxsize=None) def fib_memo(n): if n < 2: return n return fib_memo(n-1) + fib_memo(n-2) print([fib_memo(i) for i in range(9)])
Плюсы: O(n) по времени и O(n) по памяти․
4․3 Итеративный (самый практичный)
def fib_iter(n): a, b = 0, 1 for _ in range(n): yield a a, b = b, a + b print(list(fib_iter(9)))
Плюсы: константная память O(1), линейное время O(n)․
От чисел к рисунку: модуль «CoffeeArt» на Python
Ниже приведён упрощённый, но рабочий скрипт, превращающий список чисел Фибоначчи в ASCII-карту морды львенка․ Вы можете заменить символы на «•» (кофейное зерно) и пробелы, чтобы затем перевести в реальную гущу․
fib = list(fib_iter(9)) mask = [ [0,0,1,1,1,1,0,0,0], [0,1,1,1,1,1,1,0,0], [1,1,0,1,1,0,1,1,0], [1,1,1,1,1,1,1,1,0], [1,0,1,0,0,1,0,1,0], [0,1,0,1,1,0,1,0,0], [0,0,1,0,0,1,0,0,0], [0,0,0,1,1,1,0,0,0], [0,0,0,0,1,0,0,0,0] ] for row in mask: line = '' for cell in row: # Используем 2 мм для 0, 5 мм для 1 size = 2 if cell == 0 else 5 line += '●' * size + ' ' print(line)
Запустите скрипт и получите ASCII-эскиз․ Затем:
- Распечатайте шаблон․
- Выложите кофейную гущу по клеткам, увеличивая количество гущи пропорционально числам Фибоначчи для более «объёмной» текстуры․
Что делать после создания композиции?
- Фиксация․ Слегка опрыскайте лаком для волос, чтобы кофейная гуща не осыпалась․
- Фото․ Сделайте макросъёмку: структура зёрен будет играть светом и тенью, создавая эффект 3D-морды․
- Эко-рецепт․ Используйте засохшую гущу как удобрение для комнатных растений․
Соединив кофейную гущу, числа Фибоначчи и Python, мы не просто избавились от бытового «мусора», а создали арт-объект, в котором математика становится материальной․ Пусть ваша морда львенка на кофейной гуще напоминает: даже в самых простых вещах скрыта гармония, стоит только заглянуть чуть глубже․
Приятного творчества и ароматного кофе!