А вот и решение задач 😎
• Велосипедный вор
Допустим, велосипед украл Коля. Тогда и Саша, и Юра говорят правду.Если украл Саша, то и Коля, и Юра говорят правду. Если украл Юра, то правду говорит только Саша. Значит, вор — Юра.
• Сколько задач удалось завершить за спринт?
Для решения нужно знать, сколько задач выполнил тимлид. Для этого нужно определить, сколько задач в среднем выполнили все 10 членов команды: распределив поровну между 9 джунами 9 задач, закрытых добавочно тимлидом, мы узнаем, что в среднем каждый член команды справился с 15 + 1 = 16 задачами. Отсюда следует, что тимлид закрыл 16 + 9 = 25 задач, а вся команда (15 * 9) + 25 = 160 задач.
• Трое в опенспейсе:
Парень в красной футболке заявил, что он бэкендер, и мы мгновенно понимаем, что это не может быть правдой. Если бы он был бэкендером, он бы не сказал об этом, а если сказанное — ложь, тогда он — не бэкендер. Он также не может быть фронтендером, потому что фронт не смог бы соврать и назваться бэкендером. Следовательно, это менеджер. Парень в синей футболке утверждает, что он — не менеджер. Мы уже определили, что менеджер — в красной, так что парень в синей не врет. Значит, он — фронтендер. Остается парень в зеленой, который, очевидно, бэкендер. Он сказал: «Если бы ты меня спросил, кто в красной футболке, я бы сказал, что он менеджер». Несмотря на то, что парень в красной футболке — действительно менеджер, это заявление ложно. Если бы вы его спросили, кто парень в красной футболке, он бы соврал и сказал, что тот — не менеджер. А так он соврал вам насчет того, что ответил бы, если бы его спросили. Итак, парень в синей футболке — фронтендер, в красной — менеджер, а в зеленой — бэкендер.
👩🏽💻
#itЛогика #решение
• Велосипедный вор
Допустим, велосипед украл Коля. Тогда и Саша, и Юра говорят правду.Если украл Саша, то и Коля, и Юра говорят правду. Если украл Юра, то правду говорит только Саша. Значит, вор — Юра.
• Сколько задач удалось завершить за спринт?
Для решения нужно знать, сколько задач выполнил тимлид. Для этого нужно определить, сколько задач в среднем выполнили все 10 членов команды: распределив поровну между 9 джунами 9 задач, закрытых добавочно тимлидом, мы узнаем, что в среднем каждый член команды справился с 15 + 1 = 16 задачами. Отсюда следует, что тимлид закрыл 16 + 9 = 25 задач, а вся команда (15 * 9) + 25 = 160 задач.
• Трое в опенспейсе:
Парень в красной футболке заявил, что он бэкендер, и мы мгновенно понимаем, что это не может быть правдой. Если бы он был бэкендером, он бы не сказал об этом, а если сказанное — ложь, тогда он — не бэкендер. Он также не может быть фронтендером, потому что фронт не смог бы соврать и назваться бэкендером. Следовательно, это менеджер. Парень в синей футболке утверждает, что он — не менеджер. Мы уже определили, что менеджер — в красной, так что парень в синей не врет. Значит, он — фронтендер. Остается парень в зеленой, который, очевидно, бэкендер. Он сказал: «Если бы ты меня спросил, кто в красной футболке, я бы сказал, что он менеджер». Несмотря на то, что парень в красной футболке — действительно менеджер, это заявление ложно. Если бы вы его спросили, кто парень в красной футболке, он бы соврал и сказал, что тот — не менеджер. А так он соврал вам насчет того, что ответил бы, если бы его спросили. Итак, парень в синей футболке — фронтендер, в красной — менеджер, а в зеленой — бэкендер.
👩🏽💻
#itЛогика #решение
👍3
Подборка из 5 книг для изучения Python👇🏻
• Франсуа Шолле «Глубокое обучение на Python»
Автор книги — один из создателей Keras — нейросетевой библиотеки, написанной на Python и нацеленной на работу с сетями глубинного обучения. Шолле рассматривает тему нейронных сетей и объясняет сложные моменты на примерах.
• Мориц Ленц «Python. Непрерывная интеграция и доставка»
Мориц Ленц — программист, архитектор ПО. Создал систему непрерывной интеграции и доставки для 50 программных библиотек и приложений. Книга «Python. Непрерывная интеграция и доставка» состоит из 14 глав. В первых главах рассматривается тема тестирования программ (автоматическое и модульное тестирование). Далее автор переходит к разбору непрерывной интеграции с Jenkins. Далее вы познакомитесь с непрерывной доставкой, сборкой, распространением и развертыванием пакетов. Отдельная глава посвящена вопросам безопасности. Автор использует Python 3, в качестве инфраструктуры - Debian GNU/Linux.
• Джульен Данжу «Путь в Python»
В книге описаны советы и практические решения, которые помогут максимально эффективно создавать надежные программы.
Автор больше 20 лет занимается хакингом свободного ПО. Также он занимается и разработкой программ, причем последние 12 лет — на Python. В частности, Джульен был тимлидом проекта в OpenStack — распределенной облачной платформе. В настоящее время Джульен руководит собственной компанией, где тоже ежедневно пишет на Python.
• Дэвид Бизли, Брайан К. Джонс «Python. Книга рецептов»
Книга предполагает наличие глубоких знаний языка и написана для опытных программистов. В ней описывается много непростых случаев и пути их решения.
• Марк Лутц «Python. Карманный справочник»
Справочник предназначен в качестве краткого руководства для разработчиков. Является дополнением к иной литературе или практическим упражнениям. В нём рассматриваются обе версии языка Python6 2.x и 3.x.
В комментариях можете поделиться литературой, которая помогла вам в изучении этого языка👩🏽💻
• Франсуа Шолле «Глубокое обучение на Python»
Автор книги — один из создателей Keras — нейросетевой библиотеки, написанной на Python и нацеленной на работу с сетями глубинного обучения. Шолле рассматривает тему нейронных сетей и объясняет сложные моменты на примерах.
• Мориц Ленц «Python. Непрерывная интеграция и доставка»
Мориц Ленц — программист, архитектор ПО. Создал систему непрерывной интеграции и доставки для 50 программных библиотек и приложений. Книга «Python. Непрерывная интеграция и доставка» состоит из 14 глав. В первых главах рассматривается тема тестирования программ (автоматическое и модульное тестирование). Далее автор переходит к разбору непрерывной интеграции с Jenkins. Далее вы познакомитесь с непрерывной доставкой, сборкой, распространением и развертыванием пакетов. Отдельная глава посвящена вопросам безопасности. Автор использует Python 3, в качестве инфраструктуры - Debian GNU/Linux.
• Джульен Данжу «Путь в Python»
В книге описаны советы и практические решения, которые помогут максимально эффективно создавать надежные программы.
Автор больше 20 лет занимается хакингом свободного ПО. Также он занимается и разработкой программ, причем последние 12 лет — на Python. В частности, Джульен был тимлидом проекта в OpenStack — распределенной облачной платформе. В настоящее время Джульен руководит собственной компанией, где тоже ежедневно пишет на Python.
• Дэвид Бизли, Брайан К. Джонс «Python. Книга рецептов»
Книга предполагает наличие глубоких знаний языка и написана для опытных программистов. В ней описывается много непростых случаев и пути их решения.
• Марк Лутц «Python. Карманный справочник»
Справочник предназначен в качестве краткого руководства для разработчиков. Является дополнением к иной литературе или практическим упражнениям. В нём рассматриваются обе версии языка Python6 2.x и 3.x.
В комментариях можете поделиться литературой, которая помогла вам в изучении этого языка👩🏽💻
👍3
Учимся на матрице 📟
Изучать новое становится скучно, когда теории много, а практика однообразна?
Предлагаю изучить основы Python необычным способом. В серии постов этого weekend'а мы свами создадим ту самую известную матрицу из фильма💻
За два дня ты узнаешь:
✅ Что такое библиотеки
✅ Как их загружать
✅ Что такое объекты и классы
✅ Как создавать функционал класса
✅ Как работать с определённой ОС (у нас будет windows 10)
✅ Как обрабатывать нажатия на клавиатуру
По секрету:программа займет меньше 100 строк кода
Интересно?
Тогда оставайся
👩🏽💻
Изучать новое становится скучно, когда теории много, а практика однообразна?
Предлагаю изучить основы Python необычным способом. В серии постов этого weekend'а мы свами создадим ту самую известную матрицу из фильма💻
За два дня ты узнаешь:
✅ Что такое библиотеки
✅ Как их загружать
✅ Что такое объекты и классы
✅ Как создавать функционал класса
✅ Как работать с определённой ОС (у нас будет windows 10)
✅ Как обрабатывать нажатия на клавиатуру
По секрету:
Тогда оставайся
👩🏽💻
👍3
Матрица. Часть первая
• Что такое библиотека?
Библиотека языка программирования — это просто набор модулей и функций, которые облегчают некоторые специфические операции с использованием этого языка программирования. Библиотеки бывают стандартные и пользовательские.
• Как загружать библиотеки(модули) в Python?
Подключить модуль можно с помощью инструкции
После ключевого слова
- если указанный атрибут модуля не будет найден, возбудится исключение
• sys - модуль, обеспечивающий доступ к некоторым переменным и функциям, взаимодействующим с интерпретатором Python
• random - модуль для генерация случайных чисел и букв, случайного выбора элементов последовательности
• time - модуль для работы со временем
• bext - модуль для обработки действий курсора в окне терминала
• colorama - модуль для использования управляющих символов ANSI (используются для создания цветного текста в терминале и позиционирования курсора) под MS Windows
👩🏽💻
• Что такое библиотека?
Библиотека языка программирования — это просто набор модулей и функций, которые облегчают некоторые специфические операции с использованием этого языка программирования. Библиотеки бывают стандартные и пользовательские.
• Как загружать библиотеки(модули) в Python?
Подключить модуль можно с помощью инструкции
import. Например: import os После ключевого слова
import указывается название модуля. Одной инструкцией можно подключить несколько модулей, но это является плохим тоном. Например: import time, random
После импортирования модуля его название становится переменной, через которую можно получить доступ к атрибутам модуля. Например, можно обратиться к константе e, расположенной в модуле math следующим образом:import math
math.e
Отметим что импорт модулей может вызывать исключения:- если указанный атрибут модуля не будет найден, возбудится исключение
AttributeError
- если не удастся найти модуль для импортирования, то возбудится исключение ImportError
Если вы хотите изменить название модуля (например, оно слишком длинное), то для него можно создать псевдоним, с помощью ключевого слова as. Например:import math as m
m.e
Для нашей задачи понадобятся следующие библиотеки• sys - модуль, обеспечивающий доступ к некоторым переменным и функциям, взаимодействующим с интерпретатором Python
• random - модуль для генерация случайных чисел и букв, случайного выбора элементов последовательности
• time - модуль для работы со временем
• bext - модуль для обработки действий курсора в окне терминала
• colorama - модуль для использования управляющих символов ANSI (используются для создания цветного текста в терминале и позиционирования курсора) под MS Windows
👩🏽💻
👍3
Матрица. Часть вторая
• Объекты и классы Python
Напомню, что Python является объектно-ориентированным языком, поэтому Python позволяет определять собственные типы данных с помощью классов. Класс представляет некоторую сущность, конкретным воплощением которой является объект. Класс определяется с помощью ключевого слова
Атрибуты хранят состояние объекта. Для определения и установки атрибутов внутри класса можно применять слово
Методы класса представляют функции, которые определенны внутри класса и которые определяют его поведение.
Размышления для нашей задачи:
Стекающая капля Матрицы - это объект. Визуализация нам подсказывает, что капли ведут себя по-разному, но имеют одинаковое устройство. Поэтому мы создадим класс, в котором опишем основные действия с каплей, её атрибуты, а также определим её скорость.
👩🏽💻
• Объекты и классы Python
Напомню, что Python является объектно-ориентированным языком, поэтому Python позволяет определять собственные типы данных с помощью классов. Класс представляет некоторую сущность, конкретным воплощением которой является объект. Класс определяется с помощью ключевого слова
class. Внутри класса определяются его атрибуты, которые хранят различные характеристики класса, и методы - функции класса:class название_класса:Через ключевое слово self можно обращаться внутри класса к функциональности текущего объекта:
атрибуты_класса
методы_класса
self.атрибут # обращение к атрибутуДля создания объекта класса используется конструктор. У каждого класса есть конструктор по умолчанию, который не принимает параметров. Он вызывается как
self.метод # обращение к методу
имя_класса().Атрибуты хранят состояние объекта. Для определения и установки атрибутов внутри класса можно применять слово
self.Методы класса представляют функции, которые определенны внутри класса и которые определяют его поведение.
Размышления для нашей задачи:
Стекающая капля Матрицы - это объект. Визуализация нам подсказывает, что капли ведут себя по-разному, но имеют одинаковое устройство. Поэтому мы создадим класс, в котором опишем основные действия с каплей, её атрибуты, а также определим её скорость.
👩🏽💻
👍3
Матрица. Финал
Для подготовки консоли используем описанные в части 1 модули следующим образом:
Для капли создадим класс
с атрибутами:
x - начальное положение по горизонтали
y - начальное положение по вертикали
drop_type - тип капли
timeout - задержка до следующего перемещения
wait_count - счетчик паузы
и методами:
move - метод перемещения капель
draw - метод рисования струи капли
con_print - метод для вывода символа нужного цвета в указанное место консольного окна
zero_draw - метод для рисования дополнительного 0 в начале каждой струи
renew - метод перерождения капель
Также не забываем, что нам нужны будут функции (вне класса) для вывода текста ( капель) в консоль.
Важное замечание: наша программа будет крутиться в вечном цикле
Если не получиться, код решения будет опубликован уже завтра
👩🏽💻
Для подготовки консоли используем описанные в части 1 модули следующим образом:
bext.title ('Matrix') # меняем заголовок консоли
bext.clear () # очищаем консоль
bext.hide () # скрываем курсор в консоли
width, height = bext.size () # получаем размер консольного окна
width -= 1
height -= 1
Вводим константы с цветами. Нам нужен зелёный и тёмно-зелёный. Обязательно обращаем внимание на то, как называются нужные нам цвета в Windows:lgreen = colorama.Fore.LIGHTGREEN_EXИнтерфейсная часть готова.
green = colorama.Fore.GREEN
Для капли создадим класс
Drop с атрибутами:
x - начальное положение по горизонтали
y - начальное положение по вертикали
drop_type - тип капли
timeout - задержка до следующего перемещения
wait_count - счетчик паузы
и методами:
move - метод перемещения капель
draw - метод рисования струи капли
con_print - метод для вывода символа нужного цвета в указанное место консольного окна
zero_draw - метод для рисования дополнительного 0 в начале каждой струи
renew - метод перерождения капель
Также не забываем, что нам нужны будут функции (вне класса) для вывода текста ( капель) в консоль.
Важное замечание: наша программа будет крутиться в вечном цикле
while (true). Она завершится при нажатии кнопки Esc на клавиатуре. Добавим эту проверку:key = bext.getKey (blocking = False) # проверка нажатия клавиша
if key == 'esc':
bext.clear ()
sys.exit ()
Попробуйте пройти все этапы и создать ту самую матрицу💪🏻👍4
Как создать Матрицу
На выходных вышла серия постов о том, как создать матрицу из самой известной заставки:
• первый пост
• второй пост
• третий пост
Вот один из вариантов решения задачи🔥
Своим решением, вопросами и предложениями можете поделиться в комментариях к этому посту👇🏻
👩🏽💻#ТопБЛОГ
На выходных вышла серия постов о том, как создать матрицу из самой известной заставки:
• первый пост
• второй пост
• третий пост
Вот один из вариантов решения задачи🔥
Своим решением, вопросами и предложениями можете поделиться в комментариях к этому посту👇🏻
👩🏽💻#ТопБЛОГ
👍3
Решай задачи - развивай логику 👩🏽💻
Условие:
Чтобы поддержать внутренний туризм, команда программистов купила билеты на поезд по Золотому кольцу и заняла все места. Всего в поезде было 11 вагонов и 381 место.
В разных вагонах ввиду конструкционных особенностей разное количество мест и, соответственно, разное количество пассажиров. Но в каждых любых трёх вагонах подряд в сумме едет ровно 99 человек. Какие бы три вагона подряд ни взяли — всё равно 99.
Сколько человек едет в девятом вагоне?
Пиши свой ответ в комментарии👇🏻
Ps:решение будет через 24 часа
#itЛогика
Условие:
Чтобы поддержать внутренний туризм, команда программистов купила билеты на поезд по Золотому кольцу и заняла все места. Всего в поезде было 11 вагонов и 381 место.
В разных вагонах ввиду конструкционных особенностей разное количество мест и, соответственно, разное количество пассажиров. Но в каждых любых трёх вагонах подряд в сумме едет ровно 99 человек. Какие бы три вагона подряд ни взяли — всё равно 99.
Сколько человек едет в девятом вагоне?
Пиши свой ответ в комментарии👇🏻
Ps:
👍5
Решение задачи
Решение:
Всего 381 пассажир и 11 вагонов, отсюда:
#itЛогика #решение
Решение:
Всего 381 пассажир и 11 вагонов, отсюда:
x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 + x10 + x11 = 381По условию три любых вагона подряд дают в сумме 99. Это значит, что:
x1 + x2 + x3 = 99Перенесем эти равенства в первое уравнение:
x4 + x5 + x6 = 99
x7 + x8 + x9 = 99
99 + 99 + 99 + x10 + x11 = 381По условию в трёх последних вагонах также едет в сумме 99 пассажиров:
297 + x10 + x11 = 381
x10 + x11 = 84
x9 + x10 + x11 = 99Отсюда:
(x9 + x10 + x11) − (x10 + x11) = 99 − 84Отсюда в девятом и третьем вагоне едет по 15 человек (так в задаче не указана откуда идёт нумерация вагонов: с головы или хвоста)
x9 + x10 − x10 + x11 −x11 = 15
x9 = 15
#itЛогика #решение
👍3
Математический трюк 👩🏽💻
Диалог:
— Загадай любое целое число от 0 до 100!
— Загадал.
— Спорим, я угадаю его за 7 попыток или быстрее? Я буду называть числа, а ты — отвечать, оно больше, меньше или равно загаданному.
— Ахахах, ты не сможешь угадать за 7 попыток!
— Спорим, угадаю!
— Ну давай, покажи своё кунфу…
6 попыток спустя он угадал число. Они попробовали снова, и во второй раз число было отгадано за семь попыток. В третий — за четыре. Сколько бы они ни играли, число всегда угадывалось за 7 попыток или менее.
Вопрос: как?
Ps:ответ через 24 часа
#itЛогика
Диалог:
— Загадай любое целое число от 0 до 100!
— Загадал.
— Спорим, я угадаю его за 7 попыток или быстрее? Я буду называть числа, а ты — отвечать, оно больше, меньше или равно загаданному.
— Ахахах, ты не сможешь угадать за 7 попыток!
— Спорим, угадаю!
— Ну давай, покажи своё кунфу…
6 попыток спустя он угадал число. Они попробовали снова, и во второй раз число было отгадано за семь попыток. В третий — за четыре. Сколько бы они ни играли, число всегда угадывалось за 7 попыток или менее.
Вопрос: как?
Ps:
👍1
Решение задачи
Решение:
Это простейшая алгоритмическая задача, которая показывает мощь алгоритмического мышления. Смысл в том, чтобы каждый раз называть число, которое делит пополам диапазон возможных чисел.
Этот приём каждый раз в 2 раза сокращает область поиска, и в конце нам становится легко угадать даже простым перебором.
За 7 шагов можно угадать любое число от 0 до 127 или от 1 до 128. Всё потому, что два в седьмой степени — это как раз 128. Каждый раз, когда мы делим рабочий диапазон на 2, мы как будто убираем одну степень у двойки, постепенно уменьшая наш диапазон угадывания до двух чисел. Для верности лучше добавить ещё попытку.
Если бы у нас было 8 попыток, можно было бы угадывать числа до 256. 9 попыток — 512 и так далее.
👉На этом принципе построена модель данных «Бинарное дерево» — это одна из важнейших технологий для составления словарей и поиска данных.
#itЛогика #решение
Решение:
Это простейшая алгоритмическая задача, которая показывает мощь алгоритмического мышления. Смысл в том, чтобы каждый раз называть число, которое делит пополам диапазон возможных чисел.
Этот приём каждый раз в 2 раза сокращает область поиска, и в конце нам становится легко угадать даже простым перебором.
За 7 шагов можно угадать любое число от 0 до 127 или от 1 до 128. Всё потому, что два в седьмой степени — это как раз 128. Каждый раз, когда мы делим рабочий диапазон на 2, мы как будто убираем одну степень у двойки, постепенно уменьшая наш диапазон угадывания до двух чисел. Для верности лучше добавить ещё попытку.
Если бы у нас было 8 попыток, можно было бы угадывать числа до 256. 9 попыток — 512 и так далее.
👉На этом принципе построена модель данных «Бинарное дерево» — это одна из важнейших технологий для составления словарей и поиска данных.
#itЛогика #решение
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Играем в тетрис и создаём QR-код😱
Надеюсь, создавать матрицу вам понравилось и вы готовы к следующему квесту🔥
Многие знают, что сгенерировать QR-код на Python достаточно легко 👇🏻
Что для этого нужно:
• Помним, что при создании QR-кода используется избыточное кодирование (существует несколько уровней).
• Библиотека qrcode, которая позволяет получить доступ к сгенерированному QR-коду как к двумерному массиву булевых значений, где каждый элемент соответствует пикселю.
• Библиотека imageio, которая позволяет форматировать анимированные изображения.
• Библиотека numpy, здесь она использовалась для решения системы матричных уравнений.
Вас ждет серия постов с информацией о том, как это сделать👩🏽💻
Ps:первая публикация уже на этой неделе
#Поделисьзнанием #ТопБлог #flameIT
Надеюсь, создавать матрицу вам понравилось и вы готовы к следующему квесту🔥
Многие знают, что сгенерировать QR-код на Python достаточно легко 👇🏻
import qrcode
data = "https://yandex.ru/"
filename = "qr.png"
img = qrcode.make(data)
img.save(filename)
Но, мы разнообразим процесс и сделаем так, что наш код-результат игры в тетрис🧠Что для этого нужно:
• Помним, что при создании QR-кода используется избыточное кодирование (существует несколько уровней).
• Библиотека qrcode, которая позволяет получить доступ к сгенерированному QR-коду как к двумерному массиву булевых значений, где каждый элемент соответствует пикселю.
• Библиотека imageio, которая позволяет форматировать анимированные изображения.
• Библиотека numpy, здесь она использовалась для решения системы матричных уравнений.
Вас ждет серия постов с информацией о том, как это сделать👩🏽💻
Ps:
👍6