Динамическое программирование
Динамическое программирование - это система решения заданий, которая предполагает, что большая проблема будет разбита на более мелкие задачи, которые более понятные в решении. 😉🪽
Работа динамического программирования очень похожа на рекурсию с запоминанием промежуточных решений — такую рекурсию еще называют мемоизацией. Рекурсивные алгоритмы, как правило, разбивают большую задачу на более мелкие подзадачи и решают их. Динамические алгоритмы делят задачу на кусочки и вычисляют их по очереди, шаг за шагом наращивая решения. Поэтому динамические алгоритмы можно представить как рекурсию, работающую снизу вверх. 🪜
Магия динамического программирования заключается в умном обращении с решениями подзадач. «Умный» в этом контексте значит «не решающий одну и ту же подзадачу дважды». Для этого решения мелких подзадач должны где-то сохраняться. Для многих реальных алгоритмов динамического программирования этой структурой данных является таблица. 🪄🪧
Динамическое программирование - это система решения заданий, которая предполагает, что большая проблема будет разбита на более мелкие задачи, которые более понятные в решении. 😉🪽
Работа динамического программирования очень похожа на рекурсию с запоминанием промежуточных решений — такую рекурсию еще называют мемоизацией. Рекурсивные алгоритмы, как правило, разбивают большую задачу на более мелкие подзадачи и решают их. Динамические алгоритмы делят задачу на кусочки и вычисляют их по очереди, шаг за шагом наращивая решения. Поэтому динамические алгоритмы можно представить как рекурсию, работающую снизу вверх. 🪜
Магия динамического программирования заключается в умном обращении с решениями подзадач. «Умный» в этом контексте значит «не решающий одну и ту же подзадачу дважды». Для этого решения мелких подзадач должны где-то сохраняться. Для многих реальных алгоритмов динамического программирования этой структурой данных является таблица. 🪄🪧
👏2
Сортировка пузырьком
Обратите внимание, что из всех алгоритмов у сортировки пузырьком наихудший случай и среднее значение:
Временная сложность = O(n²).
Внутренний цикл работает не менее n раз. Поэтому операция займет не менее n² времени
Пространственная сложность = O(1).
Дополнительная память не используется, потому что происходит обмен элементов в исходном массиве.
#алгоритмы
Обратите внимание, что из всех алгоритмов у сортировки пузырьком наихудший случай и среднее значение:
Временная сложность = O(n²).
Внутренний цикл работает не менее n раз. Поэтому операция займет не менее n² времени
Пространственная сложность = O(1).
Дополнительная память не используется, потому что происходит обмен элементов в исходном массиве.
#алгоритмы
🔥2
Tabulate
Tabulate используется для создания таблиц с удобным дизайном. В ней есть множество функций форматирования для удобного вывода словарей, списков, двумерных массивов библиотек NumPy и Pandas. Кроме консоли Tabulate поддерживает выгрузку данных и в различных веб-форматах — от HTML до Markdown Extra.
#библиотеки
Tabulate используется для создания таблиц с удобным дизайном. В ней есть множество функций форматирования для удобного вывода словарей, списков, двумерных массивов библиотек NumPy и Pandas. Кроме консоли Tabulate поддерживает выгрузку данных и в различных веб-форматах — от HTML до Markdown Extra.
#библиотеки
👍2
Книга: "Большая книга проектов Python. Свейгарт Эл"
Если вы уже освоили основы Python, эта книга поможет вам отточить свои навыки на математических задачах, головоломках, играх, анимации, моделированию процессов и т. д.
В каждой главе вы найдете:
- Описание программы;
- Результат выполнения программы;
- Код программы с подробным объяснением;
- Задания для самостоятельного исследования.
#книги
Если вы уже освоили основы Python, эта книга поможет вам отточить свои навыки на математических задачах, головоломках, играх, анимации, моделированию процессов и т. д.
В каждой главе вы найдете:
- Описание программы;
- Результат выполнения программы;
- Код программы с подробным объяснением;
- Задания для самостоятельного исследования.
#книги
❤3👍1
Объединение множеств
Метод union()
Объединение множеств – это множество, состоящее из элементов, принадлежащих хотя бы одному из объединяемых множеств. Для этой операции существует метод union().
#методы
Метод union()
Объединение множеств – это множество, состоящее из элементов, принадлежащих хотя бы одному из объединяемых множеств. Для этой операции существует метод union().
#методы
👍2
Двусторонняя очередь в Python
Класс collections.deque() это обобщение стеков и очередей и представляет собой двустороннюю очередь. Двусторонняя очередь deque() поддерживает поточно-ориентированные, эффективные по памяти операции добавления и извлечения элементов последовательности с любой стороны с примерно одинаковой производительностью O(1) в любом направлении.
Класс deque() модуля collections возвращает новый объект deque(), инициализированный слева направо данными из итерируемой последовательности iterable.
Если хотите больше узнать про двустороннюю очередь в Python - ставьте как можно больше реакций под этот пост🤖😎
#типы_данных
Класс collections.deque() это обобщение стеков и очередей и представляет собой двустороннюю очередь. Двусторонняя очередь deque() поддерживает поточно-ориентированные, эффективные по памяти операции добавления и извлечения элементов последовательности с любой стороны с примерно одинаковой производительностью O(1) в любом направлении.
Класс deque() модуля collections возвращает новый объект deque(), инициализированный слева направо данными из итерируемой последовательности iterable.
Если хотите больше узнать про двустороннюю очередь в Python - ставьте как можно больше реакций под этот пост🤖😎
#типы_данных
👍3🔥2
Какие из следующих тем вы бы хотели больше всего, чтобы мы разобрали на канале?
Final Results
46%
Парсинг сайтов
39%
Оценка сложно алгоритмов
21%
Как реализуется камера
21%
Компиляторы и интерпретаторы
👍5
Книга: "Алгоритмы неформально. Инструкция для начинающих питонистов. Такфилд Брэдфорд"
Вы узнаете нюансы реализации многих самых популярных алгоритмов, познакомитесь с их реализацией на Python 3, а также научитесь измерять и оптимизировать их производительность. После прочтения книги вы научитесь:
- Использовать алгоритмы для построения чат-ботов, настольных игр и решения головоломок «судоку».
- Искать максимумы и минимумы с помощью алгоритма градиентного спуска.
- Строить деревья решений для предсказания вашего уровня счастья.
- Использовать алгоритмы отладки кода, максимизации доходов и генерирования случайных чисел.
- Измерять эффективность и скорость алгоритмов.
#книги
Вы узнаете нюансы реализации многих самых популярных алгоритмов, познакомитесь с их реализацией на Python 3, а также научитесь измерять и оптимизировать их производительность. После прочтения книги вы научитесь:
- Использовать алгоритмы для построения чат-ботов, настольных игр и решения головоломок «судоку».
- Искать максимумы и минимумы с помощью алгоритма градиентного спуска.
- Строить деревья решений для предсказания вашего уровня счастья.
- Использовать алгоритмы отладки кода, максимизации доходов и генерирования случайных чисел.
- Измерять эффективность и скорость алгоритмов.
#книги
👏4
Конструкция with в Python используется для работы с файлами и гарантирует, что файл будет закрыт после завершения работы с ним, даже если произойдет исключение.
Приведенный выше код открывает файл 'example.txt' в режиме чтения ('r') с помощью конструкции with. Затем он читает содержимое файла с помощью метода read() и сохраняет его в переменную text. Наконец, текст выводится на экран с помощью функции print().
Приведенный выше код открывает файл 'example.txt' в режиме чтения ('r') с помощью конструкции with. Затем он читает содержимое файла с помощью метода read() и сохраняет его в переменную text. Наконец, текст выводится на экран с помощью функции print().
👍3🔥1
Altair
Altair — это библиотека Python для статистической визуализации. Она носит «декларативный» характер: разработчикам не нужно писать объемный код для визуализации, а достаточно указать на связь с данными. Altair не поддерживает 3D, но особенно полезен для создания составных и комплексных 2D-графиков.
#библиотеки
Altair — это библиотека Python для статистической визуализации. Она носит «декларативный» характер: разработчикам не нужно писать объемный код для визуализации, а достаточно указать на связь с данными. Altair не поддерживает 3D, но особенно полезен для создания составных и комплексных 2D-графиков.
#библиотеки
🤔2👍1🔥1
Мой топ-5🔝 языков программирования на данный момент выглядит следующим образом:
1⃣ Python - Python занимает лидирующую позицию благодаря своей простоте, универсальности и широкому применению в различных областях, включая разработку веб-приложений, научные проекты, анализ данных и машинное обучение 🐍
2⃣ JavaScript - JavaScript остается одним из самых популярных языков программирования благодаря его использованию в веб-разработке, создании интерактивных интерфейсов и разработке приложений для мобильных устройств 🟨⚫️
3⃣ Java - Java остается одним из основных языков программирования для разработки корпоративных приложений, мобильных приложений на платформе Android, игр и встроенных систем ☕️
4⃣ C++ - используется для разработки высокопроизводительных приложений, игр, системного программирования, а также в области машинного обучения и компьютерной графики 🐀
5⃣ SQL - несмотря на то, что это язык запросов, он является фундаментальным инструментом для работы с базами данных и анализа данных 🔐📂
#программирование
1⃣ Python - Python занимает лидирующую позицию благодаря своей простоте, универсальности и широкому применению в различных областях, включая разработку веб-приложений, научные проекты, анализ данных и машинное обучение 🐍
2⃣ JavaScript - JavaScript остается одним из самых популярных языков программирования благодаря его использованию в веб-разработке, создании интерактивных интерфейсов и разработке приложений для мобильных устройств 🟨⚫️
3⃣ Java - Java остается одним из основных языков программирования для разработки корпоративных приложений, мобильных приложений на платформе Android, игр и встроенных систем ☕️
4⃣ C++ - используется для разработки высокопроизводительных приложений, игр, системного программирования, а также в области машинного обучения и компьютерной графики 🐀
5⃣ SQL - несмотря на то, что это язык запросов, он является фундаментальным инструментом для работы с базами данных и анализа данных 🔐📂
#программирование
🔥5👏1🦄1
Книга: "Black Hat Python: программирование для хакеров и пентестеров, 2-е изд. Джастин Зейтц, Тим Арнольд"
Во втором выпуске бестселлера Black Hat Python вы исследуете темную сторону возможностей Python: все, от написания сетевых снифферов, кражи учетных данных электронной почты и перебора каталогов до создания фаззеров мутаций, исследования виртуальных машин и создания скрытых троянов. Книга отлично подходит для всех кто хочет изучить основы хакинга.
#книги
Во втором выпуске бестселлера Black Hat Python вы исследуете темную сторону возможностей Python: все, от написания сетевых снифферов, кражи учетных данных электронной почты и перебора каталогов до создания фаззеров мутаций, исследования виртуальных машин и создания скрытых троянов. Книга отлично подходит для всех кто хочет изучить основы хакинга.
#книги
👍4🆒2