#задача
В шахматном турнире на звание гроссмейстера участвовало 12 человек, каждый сыграл с каждым по одной партии. За победу давалось 1 очко, за ничью — 0.5 очка, за поражение — 0 очков.
Могли ли получить звание гроссмейстера:
● 7 участников?
● 8 участников?
Метод от противного, покажем, что получить звание мастера могли не более 7 участников.
Пусть их было 8
💩 Тогда каждый набрал не менее 0.7 * 11 = 7.7 очков, т.е. не менее 8 очков. Получаем, что все они в сумме набрали не менее 8 * 8 = 64 очков.
💩 В то же время в партиях с участниками, не получившими звание мастера, каждый из них набрал не более 4 очков. Это дает не более 4 * 8 = 32 очков.
💩 Значит, участники, ставшие мастерами, должны были набрать в партиях между собой не менее 32 очков. Но таких партий будет всего (8 * 8 - 8) / 2 = 28. Получаем противоречие.
Пусть их было 7
💩 Пусть первые 7 всегда выигрывали у последних 5, а все остальные партии завершились вничью.
💩 Тогда первые 7 участников набрали по 1 * 5 + 0.5 * 6 = 8 очков, а последние 5 по 0 * 7 + 0.5 * 4 = 2 очка.
В шахматном турнире на звание гроссмейстера участвовало 12 человек, каждый сыграл с каждым по одной партии. За победу давалось 1 очко, за ничью — 0.5 очка, за поражение — 0 очков.
По итогам турнира звание гроссмейстера присваивали, если участник набрал более 70% от числа очков, получаемых в случае выигрыша всех партий.
Могли ли получить звание гроссмейстера:
● 7 участников?
● 8 участников?
Пусть их было 8
Пусть их было 7
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥35👍5🤔4🥱3👏1
Shared memory
Это может быть полезно для:
💩 Повышения производительности: Обмен данными через shared memory гораздо быстрее, чем традиционные методы, такие как межсетевое взаимодействие или файлы.
💩 Уменьшения задержки: Данные доступны обоим процессам напрямую в памяти, устраняя необходимость копирования.
💩 Упрощения синхронизации: Совместное использование памяти упрощает реализацию синхронизации между процессами.
Однако использование shared memory также имеет свои сложности:
💩 Потенциальные ошибки синхронизации: Необходимо тщательно продумать механизмы синхронизации, чтобы избежать проблем.
💩 Отсутствие защиты памяти: Доступ к shared memory могут получить и другие процессы, если не реализованы механизмы защиты.
💩 Сложность отладки: Отладка программ, использующих shared memory, может быть более сложной, чем отладка традиционных программ.
Shared memory является мощным инструментом для межпроцессного взаимодействия, позволяя нескольким процессам совместно использовать область памяти.
Это может быть полезно для:
Однако использование shared memory также имеет свои сложности:
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥22👍18❤2
🤔❓ Так сколько на самом деле строк на C нужно, чтобы выполнить a + b в Python?
Автор решил, что будет сравнивать разницу не в интерактивном режиме, а при чтении из файла. Потому, что в это случае, можно избавиться от лишних процедур ввода вывода для интерактивного режима. Соответственно Python будет исполнять файл. И вот будет сравниваться разница между выполнением пустого файла и файла, где сложение надо будет произвести. Что для этого нужно:
🔹 узнать сколько строк Python нужно вообще, чтобы исполнить пустой файл и выйти без ошибок
🔹 узнать сколько строк Python нужно, чтобы исполнить файл где надо сложить два числа не сохраняя никуда результат
🔹 узнать сколько строк Python нужно вообще, чтобы исполнить файл где идет сложение двух переменных содержащих числа
Читать статью
#почитать
Автор решил, что будет сравнивать разницу не в интерактивном режиме, а при чтении из файла. Потому, что в это случае, можно избавиться от лишних процедур ввода вывода для интерактивного режима. Соответственно Python будет исполнять файл. И вот будет сравниваться разница между выполнением пустого файла и файла, где сложение надо будет произвести. Что для этого нужно:
🔹 узнать сколько строк Python нужно вообще, чтобы исполнить пустой файл и выйти без ошибок
🔹 узнать сколько строк Python нужно, чтобы исполнить файл где надо сложить два числа не сохраняя никуда результат
🔹 узнать сколько строк Python нужно вообще, чтобы исполнить файл где идет сложение двух переменных содержащих числа
Читать статью
#почитать
👍11❤1
Мы продолжаем собирать ваши истории о смене профессии и трудоустройстве в IT, чтобы написать большую аналитическую статью.
👉Если вы еще не рассказывали о своем опыте, пройдите короткий опрос по ссылке.
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5🔥1🌚1
🥸👁️ Отслеживание изменений в директории с помощью Inotify
Автор материала столкнулся с задачей, где необходимо было отслеживать в ОС Linux изменение файла в директории на чистом С++. Так как чистый С++, Qt с его QFileSystemWatcher сразу отпадал, из-за того что необходимо было подключать QObject. В итоге выбор пал на линуксовую функцию Inotify.
Inotify позволяет через файловый дескриптор наблюдать за директорией или файлом, отслеживая их события. Все события ввода-вывода ссылаются на открытый файл с использованием файлового дескриптора. Файловый дескриптор представляет собой целое число типа int.
Работа типичной программы мониторинга организована следующим образом:
♦️ С помощью inotify_init() открывается файловый дескриптор
♦️ Добавляется одно или несколько событий для наблюдений
♦️ Ожидаем добавленное событие
♦️ Обрабатываются события, после чего снова начинаем ждать в бесконечном цикле
♦️ При отсутствии активных наблюдений или при получении определенного сигнала файловый дескриптор закрывается, выполняется очистка и программа завершает работу.
#туториал
Автор материала столкнулся с задачей, где необходимо было отслеживать в ОС Linux изменение файла в директории на чистом С++. Так как чистый С++, Qt с его QFileSystemWatcher сразу отпадал, из-за того что необходимо было подключать QObject. В итоге выбор пал на линуксовую функцию Inotify.
Inotify позволяет через файловый дескриптор наблюдать за директорией или файлом, отслеживая их события. Все события ввода-вывода ссылаются на открытый файл с использованием файлового дескриптора. Файловый дескриптор представляет собой целое число типа int.
Работа типичной программы мониторинга организована следующим образом:
♦️ С помощью inotify_init() открывается файловый дескриптор
♦️ Добавляется одно или несколько событий для наблюдений
♦️ Ожидаем добавленное событие
♦️ Обрабатываются события, после чего снова начинаем ждать в бесконечном цикле
♦️ При отсутствии активных наблюдений или при получении определенного сигнала файловый дескриптор закрывается, выполняется очистка и программа завершает работу.
#туториал
🎉26👍10❤3🔥1
🎄✨ До Нового года осталось меньше недели, поэтому мы подводим итоги
🧑🎄 За год наше комьюнити стало больше почти на 4000 человек
❤️ Особенно вам понравились вот эти посты:
Свежие и обновленные статьи
LMDeploy — это набор инструментов для сжатия, развертывания и обслуживания LLM
Перегрузка операторов
Позднее связывание
Дайджест статей и материалов
💜 А ещё вы с интересом читали эти статьи:
Итог одной валютной удаленки: проработал месяц бесплатно и ушел с долгами
ТОП-10 книг по языку программирования С++ в 2023 году
ТОП-9 не самых очевидных компаний для стажировки в ИТ
🧑💻 В 2023 году мы запустили несколько новых каналов:
Библиотека собеса по C/C++ | вопросы с собеседований
Библиотека задач по C/C++ | тесты, код, задания
Книги для C/C++ разработчиков
Кстати, в канале с книгами прямо сейчас проходит новогодний розыгрыш 👈
🎁 И последнее, но не менее важное: мы сделали скидку -35% на все курсы нашей академии proglib.academy
🧑🎄 За год наше комьюнити стало больше почти на 4000 человек
❤️ Особенно вам понравились вот эти посты:
Свежие и обновленные статьи
LMDeploy — это набор инструментов для сжатия, развертывания и обслуживания LLM
Перегрузка операторов
Позднее связывание
Дайджест статей и материалов
💜 А ещё вы с интересом читали эти статьи:
Итог одной валютной удаленки: проработал месяц бесплатно и ушел с долгами
ТОП-10 книг по языку программирования С++ в 2023 году
ТОП-9 не самых очевидных компаний для стажировки в ИТ
🧑💻 В 2023 году мы запустили несколько новых каналов:
Библиотека собеса по C/C++ | вопросы с собеседований
Библиотека задач по C/C++ | тесты, код, задания
Книги для C/C++ разработчиков
Кстати, в канале с книгами прямо сейчас проходит новогодний розыгрыш 👈
🎁 И последнее, но не менее важное: мы сделали скидку -35% на все курсы нашей академии proglib.academy
❤2👍2🔥2❤🔥1
🤔 Очередной #дайджест по С++
⏫ Книга «C++ for Financial Mathematics» — Книга учит всему, что вам нужно знать для решения реальных финансовых задач
⏫ Игровая легенда из 90-х — как работала 3dfx Voodoo «под капотом»? Пишем 3D-приложение с нуля на Glide
⏫ Poco — набор open-sorce библиотек для создания кроссплатформенных сетевых и веб-приложений
⏫ Мои советы после 20 лет в программировании — краткий очерк профессионального пути
⏫ Анализ приложений на C++ для оптимизации производительности — введение в оптимизацию производительности приложений на C++ с помощью таких инструментов, как Intel VTune Profiler и Intel Advisor
⏫ Книга «C++ for Financial Mathematics» — Книга учит всему, что вам нужно знать для решения реальных финансовых задач
⏫ Игровая легенда из 90-х — как работала 3dfx Voodoo «под капотом»? Пишем 3D-приложение с нуля на Glide
⏫ Poco — набор open-sorce библиотек для создания кроссплатформенных сетевых и веб-приложений
⏫ Мои советы после 20 лет в программировании — краткий очерк профессионального пути
⏫ Анализ приложений на C++ для оптимизации производительности — введение в оптимизацию производительности приложений на C++ с помощью таких инструментов, как Intel VTune Profiler и Intel Advisor
🤩17👍14❤9🥰8👏8
Чему бы вы хотели научиться?
Пишите в комментариях
Пишите в комментариях
❤2👍2
👨🎓 14 бесплатных ресурсов, которые пригодятся каждому разработчику
Эти ресурсы помогут изучить новый стек с нуля, научиться решать алгоритмические задачи, наполнить портфолио интересными проектами и успешно пройти техническое собеседование.
Читать статью
Эти ресурсы помогут изучить новый стек с нуля, научиться решать алгоритмические задачи, наполнить портфолио интересными проектами и успешно пройти техническое собеседование.
Читать статью
❤2❤🔥2🔥1
-35% на курс по алгоритмам
🎄 Новый год начинается с подарков, а хороший подарок для себя — новые знания со скидкой 35%!
🌟«Алгоритмы и структуры данных» — 23 390 ₽ (вместо 35 990 ₽)
Полугодовая программа от преподавателей МФТИ и НИУ ВШЭ, которая включает в себя все необходимые знания по алгоритмам для работы.
Самое ценное — это развернутая обратная связь по всем вашим домашним заданиям, а также ссылки на полезные дополнительные материалы.
У вас не будет шансов не усвоить какие-то темы курса👌
🔥 Переходите и активируйте вводные занятия курса — https://proglib.io/w/ff97c30a
🎄 Новый год начинается с подарков, а хороший подарок для себя — новые знания со скидкой 35%!
🌟«Алгоритмы и структуры данных» — 23 390 ₽ (вместо 35 990 ₽)
Полугодовая программа от преподавателей МФТИ и НИУ ВШЭ, которая включает в себя все необходимые знания по алгоритмам для работы.
Самое ценное — это развернутая обратная связь по всем вашим домашним заданиям, а также ссылки на полезные дополнительные материалы.
У вас не будет шансов не усвоить какие-то темы курса👌
🔥 Переходите и активируйте вводные занятия курса — https://proglib.io/w/ff97c30a
👍4🔥1
🏦⚠️ Борьба с ошибками разработки ПО в финтехе
Рассказываем, как избежать неловких, а то и непоправимых ситуаций при разработке программного обеспечения для финтеха.
Читать статью
Рассказываем, как избежать неловких, а то и непоправимых ситуаций при разработке программного обеспечения для финтеха.
Читать статью
👍7❤2
Forwarded from Библиотека задач по C++ | тесты, код, задания
Задача
Найти среднее арифметическое в трех рядах.
Для начала продумаем наше решение. Сразу условимся что длинна ряда у нас будет 5 . Хотите ставьте своё число. Нам надо найти среднее арифметическое в трех рядах, и в каждом по отдельности, т.е. мы сначала сделаем цикл для рядов, а потом в этом цикле сделаем еще один цикл только уже для чисел этого ряда.
Теперь подумаем какие переменные нам понадобятся :
Переменная summa — для суммы чисел каждого ряда
Переменная average — для среднего арифметического каждого ряда
Переменная number — обычное число которое мы будем постоянно прибавлять
Переменные i и j — для циклов, перпенные у нас будут локальные, т.е. использоваться и объявляться и цикле.
Найти среднее арифметическое в трех рядах.
Для начала продумаем наше решение. Сразу условимся что длинна ряда у нас будет 5 . Хотите ставьте своё число. Нам надо найти среднее арифметическое в трех рядах, и в каждом по отдельности, т.е. мы сначала сделаем цикл для рядов, а потом в этом цикле сделаем еще один цикл только уже для чисел этого ряда.
Теперь подумаем какие переменные нам понадобятся :
Переменная summa — для суммы чисел каждого ряда
Переменная average — для среднего арифметического каждого ряда
Переменная number — обычное число которое мы будем постоянно прибавлять
Переменные i и j — для циклов, перпенные у нас будут локальные, т.е. использоваться и объявляться и цикле.
👍11👏3
🥰7🤔6
🤔 Очередной #дайджест по С++
☀️ Как крысячить и выжить — крысы бегут первыми с ИТ-корабля
☀️ 4 миллиарда операторов if — идея проверки чётности числа при помощи одних сравнений
☀️ Книга «C and Python Applications» — встраивание кода Python в программы на C, методы SQL и сокеты Python
☀️ Паттерн проектирования «Наблюдатель» в C++ — основы шаблона проектирования Observer на C++ с теорией и реализацией
☀️ CspChan — чистая реализация каналов Go на C89, включая блокирующие и неблокирующие селекты
☀️ Как крысячить и выжить — крысы бегут первыми с ИТ-корабля
☀️ 4 миллиарда операторов if — идея проверки чётности числа при помощи одних сравнений
☀️ Книга «C and Python Applications» — встраивание кода Python в программы на C, методы SQL и сокеты Python
☀️ Паттерн проектирования «Наблюдатель» в C++ — основы шаблона проектирования Observer на C++ с теорией и реализацией
☀️ CspChan — чистая реализация каналов Go на C89, включая блокирующие и неблокирующие селекты
👍8🥰3
🤲✍️ Базовые алгоритмы на графах
Рассматриваются основные алгоритмы на графах и их реализацию на C++:
▪️Обход графа в ширину (Поиск в ширину) aka BFS | Breadth First Search
▪️Обход графа в глубину (Поиск в глубину) aka DFS | Depth First Search
▪️Алгоритм Дейкстры
▪️Алгоритм Флойда-Уоршелла
▪️Алгоритм Прима
Изучить вопрос
#туториал
Рассматриваются основные алгоритмы на графах и их реализацию на C++:
▪️Обход графа в ширину (Поиск в ширину) aka BFS | Breadth First Search
▪️Обход графа в глубину (Поиск в глубину) aka DFS | Depth First Search
▪️Алгоритм Дейкстры
▪️Алгоритм Флойда-Уоршелла
▪️Алгоритм Прима
Изучить вопрос
#туториал
❤🔥10👍7
Использование Boost
Если ваш проект открыт для поддержки библиотеки, рассмотрите возможность использования boost::algorithm::join алгоритм. Он объединяет все элементы в указанном списке в строку, где сегменты объединяются заданным разделителем.
Другие способы преобразования вектора в строку можно найти здесь.
Если ваш проект открыт для поддержки библиотеки, рассмотрите возможность использования boost::algorithm::join алгоритм. Он объединяет все элементы в указанном списке в строку, где сегменты объединяются заданным разделителем.
Другие способы преобразования вектора в строку можно найти здесь.
👍10😁4❤1