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

Обратная связь: @physicist_i

№ 5535336463
加入频道
📚_Искусство_программирования_4_тома_Дональд_Кнут.zip
47.9 MB
📚 Дональд Кнут «Искусство программирования»

📙 Том 1. Основные алгоритмы


Первый том является введением в основные алгоритмы и структуры данных, описывает базовые понятия и методы программирования. Здесь же рассматривается тема представления данных в памяти компьютера и эффективной работы с ними.
Книга изобилует примерами для символьных вычислений, численных методов, методов имитации и многого другого.
Примеры программ написаны на так называемом «MIX-ассемблере» - языке, предназначенном для работы на гипотетическом «MIX-компьютере». В третьем издании устаревший MIX был заменен на MMIX, для которого существует программное обеспечение, обеспечивающее его эмуляцию.
Использование языка низкого уровня отпугивает многих читателей, но сам автор небезосновательно оправдывает свой выбор. Привязка к архитектуре позволяет судить о таких характеристиках алгоритма, как скорость и сложность (т. е. использование памяти).

📙 Том 2. Получисленные алгоритмы

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

📙 Том 3. Сортировка и поиск

В третьем томе содержится исчерпывающий обзор классических алгоритмов сортировки и поиска. Этот материал дополняет изложенную в первой части информацию о структурах данных становясь своего рода логическим продолжением первого тома.
Здесь автор рассказывает о внутренней и внешней памяти, о построении больших и малых баз данных и работе с ними. Для всех рассмотренных в книге алгоритмов приводится сравнительный анализ их эффективности. Специальный раздел посвящен методам оптимальной сортировки и описанию новой теории перестановки и универсального хеширования.

📙 Том 4. Комбинированные алгоритмы

Четвертый том сам по себе является многотомником. Комбинаторный поиск — богатая и важная тема, и Кнут приводит слишком много нового, интересного и полезного материала, чтобы его можно было разместить в одном или двух (а может быть, даже в трех) томах. Одна эта книга включает около 1500 упражнений с ответами для самостоятельной работы, а также сотни полезных фактов, которые вы не найдете ни в каких других публикациях. #программирование #алгоритмы #подборка_книг #computer_science #code #математика #math #physics #IT #лекции #видеоуроки

⚠️ UPD: Добавлены книги в лучшем качестве и в PDF 📚

💡 Physics.Math.Code // @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
66👍52🔥21😱4😍4🆒3❤‍🔥1👻1
Media is too big
VIEW IN TELEGRAM
🔶 Формула Таппера (англ. Tupper's self-referential formula) — самореферентная (при определённых условиях) формула, открытая Джеффом Таппером (англ. Jeff Tupper). Будучи отображённой на плоскости, создаёт собственное изображение.

Впервые формула была опубликована в 2001 году в докладе Джеффа Таппера для SIGGRAPH, посвящённом разработанной им программе рисования графиков GrafEq.

Формула является неравенством, определённым следующим образом:

0.5 < [mod( [y/17]2^(-17[x]-mod([y],17)), 2) ]

Пусть k равно числу с 543-мя знаками. Если отобразить график функции для удовлетворяющих неравенству точек (x, y) в диапазоне 0 ⩽ x < 106 и k ⩽ y < k + 17, то получится та самая пиксельная картинка.

Сама формула имеет общее применение для декодирования растровых изображений, закодированных в константе k. Формулу можно использовать для воспроизведения произвольных изображений, при этом она не будет содержать никаких ссылок на себя.

Константа k — простой монохромный растр, используемый в формуле как двоичное число, умноженное на 17. Если k разделить на 17, то младший бит будет соответствовать левому нижнему углу; все 17 младших битов будут соответствовать левой колонке пикселей; следующие 17 младших битов будут соответствовать второй колонке слева и т. д.

Для создания константы k из изображения необходимо:
▪️Представить изображение в растровом виде на поле 106 × 17;
▪️Заменить, двигаясь снизу-вверх и слева-направо, закрашенные клетки на «1», а пустые на «0»;
▪️Перевести полученное число в десятичную систему счисления;
▪️Умножить число на 17;

Таким же образом, но в обратном порядке, можно получить изображение из константы k. #программирование #алгоритмы #геометрия #computer_science #математика #math #IT #алгебра #видеоуроки

💡 Physics.Math.Code // @physics_lib
60🤯47👍41🔥125❤‍🔥4🆒3😱1
This media is not supported in your browser
VIEW IN TELEGRAM
📿 Задача по логике от Microsoft [2 шнура]

У Вас есть два шнура (фитиля). Каждый шнур, подожженный с конца, полностью сгорает дотла ровно за один час, но при этом горит с неравномерной скоростью. Как при помощи этих шнуров и зажигалки отмерить время в 45 минут?

#алгоритмы #математика #задачи #логика #code #computer_science

💡 Physics.Math.Code // @physics_lib
👍63🔥129🗿5🤯4🫡2
📘 Алгоритмы и структуры данных. Новая версия для Оберона [2010] Вирт Н.
📕 Построение компиляторов [2010] Вирт Н.
📗 Алгоритмы и структуры данных [1989] Вирт Н.

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

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

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

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

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

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

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

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

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

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

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

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

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

💡 Physics.Math.Code // @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥41👍277🤩1🫡1
12 книг по теории графов.zip
130.1 MB
📚 12 лучших книг по теме: Теория Графов

📕 Графы и их применение [1965] Оре

📘 Теория графов для учителей и школьников [2017] Мельников
📗 Графы и их применение, Пособие для учителей [1979] Березина Л.Ю.
📒 Графы [2014] Гуровиц В.М., Ховрина В.В.
📔 Теория графов [2018] Омельченко А.В.
📓 Теория графов, Алгоритмический подход [1978] Кристофидес Н.
📙 Теория графов [2003] Харари Ф
📘 Введение в теорию графов [2019] Уилсон Р.Дж.
📕 Олимпиадная математика, Задачи по теории графов с решениями и указаниями [2023] Семендяева Н.Л., Федотов М.В.
📗 Дискретная математика: графы, матроиды, алгоритмы [2001] Асанов, Баранский, Расин

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

💡 Physics.Math.Code // @physics_lib
👍62❤‍🔥10🔥76🤩3
🖥 👨🏻‍💻 Товарищи-разработчики, давайте обсудим старт в IT. Расскажите в комментариях:

▪️С какой первой книги вы начали изучать программирование и Computer Science ? Понравилась ли вам эта книга или нет?

▪️ Какую книгу вы считаете лучшим вариантом для начала?

▪️ Самая сложная книга, связанная с программированием, с которой вы сталкивались?

▪️Книги VS Курсы VS Метод научного тыка, пока не скомпилируется?

▪️Условный Chat GPT — добро или зло для программиста?

📝 Обсуждаем вопросы здесь

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

💡 Physics.Math.Code // @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
👍407🔥7👨‍💻2👏1
📙 Задачи по теории множеств, математической логике и теории алгоритмов [2004] И.А. Лавров, Л.Л. Максимова

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

Теория множеств — раздел математики, в котором изучаются общие свойства множеств — совокупностей элементов произвольной природы, обладающих каким-либо общим свойством. Теория множеств была создана во второй половине XIX века Георгом Кантором при значительном участии Рихарда Дедекинда.

Теория множеств стала основой многих разделов математики — общей топологии, общей алгебры, функционального анализа и оказала существенное влияние на современное понимание предмета математики.

Некоторые области применения теории множеств: компьютерные науки, информационные технологии, моделирование данных, проектирование баз данных и разработка алгоритмов. #computer_science #дискретная_математика #математика #теория_множеств #math #coding #алгоритмы

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

💡 Physics.Math.Code // @physics_lib
👍40🔥74😍2
Задачи_по_теории_множеств,_математической_логике_и_теории_алгоритмов.zip
4.3 MB
📙 Задачи по теории множеств, математической логике и теории алгоритмов [2004] И.А. Лавров, Л.Л. Максимова

В книге в форме задач систематически изложены основы теории множеств, математической логики и теории алгоритмов. Книга предназначена для активного изучения математической логики и смежных с ней наук. Состоит из трех частей: «Теория множеств», «Математическая логика» и «Теория алгоритмов». Задачи снабжены указаниями и ответами. Все необходимые определения сформулированы в кратких теоретических введениях к каждому параграфу. 3-е издание книги вышло в 1995 г. Сборник может быть использован как учебное пособие для математических факультетов университетов, педагогических институтов, а также в технических вузах при изучении кибернетики и информатики. Для математиков – алгебраистов, логиков и кибернетиков.

Теория алгоритмов — раздел математической логики, в котором изучаются теоретические возможности эффективных процедур вычисления (алгоритмов) и их приложения.

📝 Теория алгоритмов развивается по нескольким направлениям:

▪️ Классическая теория алгоритмов. Изучает проблемы формулировки задач в терминах формальных языков, проводит классификацию задач по классам сложности (P, NP и др.).

▪️ Теория асимптотического анализа алгоритмов. Рассматривает методы получения асимптотических оценок ресурсоёмкости или времени выполнения алгоритмов, в частности, для рекурсивных алгоритмов.

▪️ Теория практического анализа вычислительных алгоритмов. Решает задачи поиска практических критериев качества алгоритмов, разработки методики выбора рациональных алгоритмов. #computer_science #дискретная_математика #математика #теория_множеств #math #coding #алгоритмы

💡 Physics.Math.Code // @physics_lib
🔥29👍196🤯1
🖥 Какая самая страшная структура данных?

🖥 Структуры данных в программировании — это способ организации и хранения данных таким образом, чтобы их можно было эффективно использовать и обрабатывать. Они играют ключевую роль в разработке алгоритмов и оптимизации производительности программ.

Некоторые структуры данных в программировании:

◾️ Списки. Подходят для хранения и обработки упорядоченных данных. Полезны в управлении задачами, лентах соцсетей и корзинах интернет-магазинов.

◾️ Массивы. Упорядоченная коллекция элементов фиксированного размера. Подходят для ситуаций, где размер коллекции известен или редко меняется.

◾️ Стеки. Следуют принципу «последним пришёл — первым вышел». Используются для реализации операций отмены/повтора в текстовых редакторах или ведения истории просмотров в веб-браузерах.

◾️ Очереди. Работают по принципу «первым пришёл — первым вышел». Подходят для управления заданиями печати, отправки действий пользователя в играх на сервер или обработки сообщений в чат-приложениях.

◾️ Деревья. Организуют данные иерархически. Полезны для представления данных с естественными иерархиями или связями.

◾️ Графы. Состоят из узлов (вершин) и рёбер, соединяющих эти узлы. Используются для моделирования сетей, таких как социальные сети, транспортные сети и компьютерные сети.

◾️ Хэш-таблицы. Позволяют эффективно искать, вставлять и удалять данные. Используют хэш-функцию для сопоставления ключей с соответствующими местами хранения и обеспечивают доступ к сохранённым значениям за постоянное время.
#программирование #разработка #структуры_данных #алгоритмы #IT #computer_science

💡 Physics.Math.Code // @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9222👨‍💻9🙈5🌚43🔥2👻2❤‍🔥1
⌨️ Программирование циклично, дамы и господа? Ваше мнение в комментариях...

👨🏻‍💻 Комментарий одного из наших подписчиков к посту с рассуждением о развитии IT:

... скорее всего тут имелось ввиду то не то чтобы сам код как таковой* а программное обеспечение в целом растёт по сложности, что провоцирует необходимость аппаратной развиваться чтобы адекватно выполнять этот код, и полученные новые вычислительные мощности в свою очередь запускают новую итерацию увеличения фичастости программ, а те в свою очередь опять подгоняют к развитию CPU.

* — не смотря на общераспространенное мнение что в целом программирование сейчас стало топорным: программисты стараются не писать реализацию сами, а прежде всего искать готовое, применять сверхвысокоуровневые и сверхабстрагированные конструкции (тратящие процессорное время) вместо того чтобы написать на Си, а сейчас так еще (что на самом деле возможно плохо для индустрии) - применяют для написания ИИ. И даже есть шутка что "раньше, когда компьютеры были большими, а программисты умными" - вот не смотря на все это и сам код в целом становится лучше, хорошеет, в том плане что тенденция в коде такова что он стремится быть максимально независящим и от аппаратуры и процессоров и от размера данных, а весь необходимый аппаратно-зависимый код стараются максимально минимизировать и изолировать в отельных маленьких модулях.

Яркий пример первые DOS игры которые от аппаратуры зависели на столько что стали не играбельны когда процессоры стали быстрее, тк "физика" в играх зависела не от времени а от частоты процессора.

Я описал более менее хороший сценарий, когда одно другое подгоняет и мы уже имеем возможность вооружившись необходимым минимумом абстракций писать код независящий от оборудования. Но дальше этим начинают злоупотреблять особенно читая мантры "время программиста дороже всего", "интересы бизнеса дороже всего", и в итоге получаются такие вещи как Electron, как Python, как приложения в браузере - печальная сторона современного IT, тот самый плохой код, тормозящий процессоры.


#IT #алгоритмы #computer_science #программирование #наука

💡 Physics.Math.Code // @physics_lib
💯48👍23❤‍🔥146🔥2🤓2🗿2🤷‍♂1
👨🏻‍💻 Интересная история из нашего чата ( @math_code ), которая может послужить темой для обсуждения нескольких важных вопросов.

▪️ Нужно ли переживать по поводу возраста, в котором вы начинаете изучать Computer Science и программирование в частности? Или силы и знания приходят во время процесса, во время решения и умственной активности, и это не зависит от возраста?

▪️ Нужно ли впадать в депрессию, если что-то долго не получается? Сравнивать себя с другими? Если все вокруг лучше, то неужели нужно бросать это дело? Или же наоборот нужно стремиться быть именно в том коллективе, где ты самый слабый (временно), чтобы был рост?

▪️ Что делать, если не получается решить задачу? Какой алгоритм можно предложить, чтобы научиться вытаскивать себя из таких ситуаций?

▪️ Если вы опытный разработчик, дайте советы начинающим. Именно те советы, которых вам так сильно не хватало на старте вашего обучения. Расскажите про свой опыт, свою историю успеха и неудач. Расскажи про ваш возраст.

📚 Подборка книг по дискретной математике, информатике, алгоритмам

📚 Искусство программирования / The Art of Computer Programming

📚 3 книги по программированию [Никлаус Вирт]

🖥 Какая самая страшная структура данных?

#IT #алгоритмы #computer_science #программирование #наука

💡 Physics.Math.Code // @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
29👍25🔥8👻32❤‍🔥1🙏1