Physics.Math.Code
143K subscribers
5.2K photos
2.07K videos
5.81K files
4.46K links
VK: vk.com/physics_math
Чат инженеров: @math_code
Учебные фильмы: @maths_lib
Репетитор IT mentor: @mentor_it
YouTube: youtube.com/c/PhysicsMathCode

№ 6045941532

Обратная связь: @physicist_i
Download Telegram
🖥 Помните предыдущие два поста про примитивные callback-функции и фильтрующие функции? Может возникнуть вопрос, а можно ли, реализовать свой аналог reduce() ?

Давайте сразу напишем такой пример:
numbers = [1, 11, 12, 13, 18, 9, 8, 6]

from functools import reduce

func = lambda acc, cur : acc + cur

total = reduce(func, numbers, 0)
print('Встроенная reduce: ',total)

def _reduce(callback, collection, init = 0):
acc = init
for k in collection:
acc = callback(acc, k)
return acc

_total = _reduce(func, numbers)
print('Моя reduce: ',_total)


Теперь объясним параметры и работу конструкции:
result = reduce( function, iterable[, initializer] ) :
▫️function — функция, применяемая к элементам итерации. Она должна принимать два аргумента.
▫️iterable — итерируемый объект, элементы которого вы хотите уменьшить. Это может быть список, кортеж или любой другой итерируемый объект.
▫️initializer — (необязательно): начальное значение аккумулятора (накопителя). Оно используется в качестве первого аргумента при первом вызове функции, если оно предусмотрено.

⚠️ Обработка пустых итераций: Одной из распространенных ошибок при использовании функции reduce() является обработка пустых итераций. Передача пустой итерации в reduce() без инициализатора вызывает Ошибку типа поскольку нет начального значения для запуска процесса сокращения. Чтобы избежать этого, всегда указывайте инициализатор, когда итерируемый объект может быть пустым.

⚙️ Производительность:
▫️ Эффективность reduce() по сравнению с циклами: Функция reduce() может быть более эффективной, чем явные циклы, потому что она реализована на C, что может обеспечить преимущества в производительности. Однако это преимущество часто незначительно и зависит от сложности применяемой функции.
▫️Преимущества использования встроенных функций в производительности: Встроенные функции, такие как sum(), min(), и max() высоко оптимизированы с точки зрения производительности. Они реализованы на C и могут выполнять операции быстрее, чем эквивалентный код Python с использованием reduce().

🖥 Зачем разработчикам нужна функция reduce() ? Функция reduce() полезна при итеративной обработке данных, избегая явных циклов и делая код более читаемым и кратким. Некоторые распространенные варианты использования включают:
▫️ Суммирование чисел в списке: Быстрое суммирование всех элементов.
▫️ Умножение элементов итеративного элемента: Вычисление произведения элементов.
▫️ Объединение строк: Объединение нескольких строк в одну.
▫️ Нахождение максимального или минимального значения: Определение самого большого или самого маленького элемента в последовательности.

#python #разработка #программирование #IT #алгоритмы

💡 Репетитор IT mentor // @mentor_it
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42👨‍💻84🤨4🔥3👾2
🐍 Циклы и их прерывания в Python: алгоритм поиска в строке

Это заметка будет для начинающих, которые только знакомятся с программированием, информатикой и с языком Python, в частности. Вчера мы с учеником изучали циклы и некоторые операторы, которые дают возможность управлять циклами. В этой небольшой статье я покажу несколько примеров. При этом от совсем простых абстракций постараемся углубиться в более полезные вещи с практической точки зрения. [ Уровень сложности: ~7..8 класс ]

👨🏻‍💻 Читать заметку полностью

#python #алгоритмы #информатика #программирование #циклы

💡 Репетитор IT mentor // @mentor_it
Please open Telegram to view this post
VIEW IN TELEGRAM
👍388😢3🗿32🔥2
📘 Алгоритмы и структуры данных. Новая версия для Оберона [2010] Вирт Н.
📕 Построение компиляторов [2010] Вирт Н.
📗 Алгоритмы и структуры данных [1989] Вирт Н.

💾 Скачать книги

Никлаус Вирт (нем. Niklaus Emil Wirth, род. 15 февраля 1934 года) — швейцарский учёный, специалист в области информатики, один из известнейших теоретиков в области разработки языков программирования, профессор компьютерных наук Швейцарской высшей технической школы Цюриха (ETHZ), лауреат премии Тьюринга 1984 года. Создатель и ведущий проектировщик языков программирования Паскаль, Модула-2, Оберон. #математика #программирование #алгоритмы #computer_science #информатика #подборка_книг

☕️ Для тех, кто захочет задонать на кофе:
ВТБ: +79616572047 (СБП) Сбер: +79026552832 (СБП)

💡 Physics.Math.Code // @physics_lib
👍48🔥115🤩1
3 книги - Никлаус Вирт.zip
74.9 MB
📘 Алгоритмы и структуры данных. Новая версия для Оберона [2010] Вирт Н.

В классическом учебнике тьюринговского лауреата Н. Вирта аккуратно, на тщательно подобранных примерах прорабатываются основные темы алгоритмики - сортировка и поиск, рекурсия, динамические структуры данных. Перевод на русский язык выполнен заново, все рассуждения и программы проверены и исправлены, часть примеров по согласованию с автором переработана с целью максимального прояснения их логики (в том числе за счет использования цикла Дейкстры). Нотацией примеров теперь служит Оберон/Компонентный Паскаль - наиболее совершенный потомок старого Паскаля по прямой линии. Все программы проверены и работают в популярном варианте Оберона - системе Блэкбокс, и доступны в исходниках на прилагаемом CD вместе с самой системой и дополнительными материалами. Большая часть материала книги составляет необходимый минимум знаний по алгоритмике не только для программистов-профессионалов, но и любых других специалистов

📕 Построение компиляторов [2010] Вирт Н.

Книга известного специалиста в области информатики Никлауса Вирта написана по материалам его лекций по вводному курсу проектирования компиляторов. На примере простого языка Оберон-0 рассмотрены все элементы транслятора, включая оптимизацию и генерацию кода. Приведен полный текст компилятора на языке программирования Оберон. Для программистов, преподавателей и студентов, изучающих системное программирование и методы трансляции.

📗 Алгоритмы и структуры данных [1989] Вирт Н.

Книга известного швейцарского специалиста посвящена изложению фундаментальных принципов построения эффективных и надежных программ. В ней содержится также описание и анализ основных алгоритмов. В настоящем дополнительном тираже изложение ведется на основе языка Паскаль (на который переведены все примеры с Модулы-2, использованной автором в предыдущих изданиях), что, однако, не снижает ценность излагаемого материала для пользователей других языков программирования. Для настоящего издания текст заново сверен с оригиналом; в нем исправлены замеченные опечатки. Для программистов разной квалификации, преподавателей и студентов. #математика #программирование #алгоритмы #computer_science #информатика

💡 Physics.Math.Code // @physics_lib
👍58🔥15❤‍🔥651😍1🗿1
📚 12 лучших книг по теме: Теория Графов

💾 Скачать книги

🪄 Теория графов — раздел дискретной математики, изучающий графы. В самом общем смысле граф — это множество точек (вершин, узлов), которые соединяются множеством линий (рёбер, дуг). Теория графов (то есть систем линий, соединяющих заданные точки) включена в учебные программы для начинающих математиков, поскольку:
▪️как и геометрия, обладает наглядностью;
▪️как и теория чисел, проста в объяснении и имеет сложные нерешённые задачи;
▪️не имеет громоздкого математического аппарата («комбинаторные методы нахождения нужного упорядочения объектов существенно отличаются от классических методов анализа поведения систем с помощью уравнений»);
▪️имеет выраженный прикладной характер.
#дискретная_математика #математика #алгоритмы #информатика #программирование #теория_графов #it #computer_science

📚 Подборка книг по теории графов [15 книг]

💡 Physics.Math.Code // @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥43👍278🤩1🫡1