40 задач на Python

40 задач на Python

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

Жанры: Самоучители, Программирование, Задачники
Цикл: Не является частью цикла
Год публикации: 2024

Читать онлайн 40 задач на Python


Глава 1: Задачи на логику и сообразительность

1. Задача о пастухе и волках

Условие:

Пастух охраняет стадо овец на лугу. На лугу также находятся волки. Луг можно представить в виде сетки (N \times M) клеток. Каждая клетка может быть либо пустой, либо содержать овцу, либо волка, либо пастуха.

Пастух может двигаться на одну клетку вверх, вниз, влево или вправо (но не по диагонали). Волки также могут двигаться на одну клетку в любом из четырех направлений. В каждом ходу все волки и пастух делают один шаг одновременно. Если волк попадает на клетку с овцой, он съедает овцу. Если волк попадает на клетку с пастухом, волк останавливается, и пастух побеждает в этом раунде.

Ваша задача – написать программу, которая моделирует передвижения пастуха и волков на лугу, чтобы пастух мог спасти как можно больше овец.

Входные данные:

– Размер луга (N \times M)

– Позиции овец, волков и пастуха на лугу

– Количество ходов, которые нужно смоделировать

Выходные данные:

– Позиции всех овец, волков и пастуха после заданного количества ходов

– Количество спасённых овец

Пример входных данных:

5 5

Пастух: 2 2

Овцы: 1 1, 3 3, 4 4

Волки: 0 0, 4 0

Ходы: 5

Пример выхода:

Пастух: 3 3

Овцы: 1 1, 3 3

Волки: 0 1, 4 1

Спасённые овцы: 2

Пояснение:

1. На вход подаются размеры луга (5x5), стартовые позиции пастуха (2,2), овец (1,1), (3,3), (4,4), волков (0,0), (4,0) и количество ходов (5).

2. Программа моделирует передвижение пастуха и волков в течение 5 ходов и выводит финальные позиции и количество спасённых овец.

Примечания:

– Считайте, что пастух и волки могут двигаться на одну клетку в одном направлении за один ход.

– Волки преследуют овец или пастуха, выбирая направление, которое минимизирует расстояние до ближайшей овцы или пастуха.

– Овцы остаются на месте.

– Если несколько волков попадают на одну клетку одновременно, один волк съедает овцу, остальные остаются на этой клетке.


Идея решения задачи о пастухе и волках

1. Представление поля

Представим луг в виде двумерного массива (списка списков). Каждая клетка может содержать одну из следующих сущностей:

– Пустая клетка (`.`)

– Пастух (`P`)

– Овца (`S`)

– Волк (`W`)

2. Чтение и обработка входных данных

Читаем размеры луга, позиции пастуха, овец и волков, а также количество ходов. Инициализируем двумерный массив для представления луга и заполняем его исходными данными.

3. Логика движения

– Пастух движется в направлении ближайшей овцы, чтобы защитить её.

– Можно использовать алгоритм поиска кратчайшего пути, например, алгоритм A* или простейший жадный алгоритм, чтобы определить направление движения пастуха к ближайшей овце.

– Волки движутся в направлении ближайшей овцы или пастуха.

– Для каждого волка определяем кратчайший путь до ближайшей цели и движемся в этом направлении.

– На каждом шагу все волки и пастух совершают по одному движению одновременно. Важно учесть, что сначала нужно рассчитать новые позиции всех сущностей, а затем обновить поле.

4. Обработка столкновений

– Если волк попадает на клетку с овцой, овца съедается.

– Если волк попадает на клетку с пастухом, волк останавливается и считается побеждённым, и пастух побеждает в этом раунде.

5. Моделирование ходов

– Повторяем процесс движения и обновления поля для заданного количества ходов.

– Отслеживаем количество спасённых овец.

6. Вывод результатов

– По завершении всех ходов выводим конечные позиции пастуха, овец и волков.

– Выводим количество спасённых овец.


Пример реализации на Python

```python

from collections import deque

# Чтение входных данных

N, M = map(int, input().split())

pastukh = tuple(map(int, input().split()))

sheep_positions = [tuple(map(int, pos.split())) for pos in input().split(',')]

wolf_positions = [tuple(map(int, pos.split())) for pos in input().split(',')]


Вам будет интересно
В этой книге вы встретите Аркандора, могущественного архимага, который проведет вас через глубины языка программирования Python от основ до продвинутых концепций. Откройте для себя волшебство создания переменных и управления данными, погрузитесь в мир объектно-ориентированного программирования, исследуйте астрономические данные и создайте свои собственные веб-приложения. С каждой главой вы будете углубляться в знания и навыки, воплощая свои идеи в реальные программы под руководством Аркандора. Э...
Читать онлайн
Данное руководство по усиленному обучению (Reinforcement Learning, RL), охватывает теоретические основы, практические применения и современные достижения. В начале дается определение RL, его исторический контекст и ключевые отличия от других видов машинного обучения. Примеры применения RL охватывают игры, робототехнику, финансовые рынки и управление ресурсами. Математические основы включают марковские процессы принятия решений, состояния, действия, награды и политики, а также Беллмановские уравн...
Читать онлайн
Как научиться жить легко?Книга «Живи легко» будет полезна читателям с разным жизненным опытом, ведь с проблемами, обозначенными здесь, сталкиваются все – не один раз.Фирменный авторский язык превращает то, что у кого-то прозвучит как нравоучение, в беседу с подругой, которая обязательно поддержит и точно плохого не посоветует. Чаще всего человеку в непростой ситуации нужно именно такое вдохновляющее слово.Советы и рекомендации, приведенные в книге, не только не позволяют унывать и улучшают самоч...
Читать онлайн
Данная книга – это практическое руководство для освоения языка программирования Python через решение разнообразных задач и проектов. В книге представлены подробные решения и код для каждой задачи.Основные разделы включают:– Логическое мышление и базовые конструкции: задачи для развития алгоритмического мышления и понимания основных конструкций Python.– Рисование и графика: упражнения с графическими изображениями и анимациями, используя библиотеки Turtle.– Работа с данными и визуализация: задачи ...
Читать онлайн
Книга представляет исследование процесса разработки приложений в области дополненной и виртуальной реальности. Автор объясняет различные аспекты этого процесса, начиная от основных понятий AR и VR, заканчивая стратегиями развертывания и монетизации приложений. И подчеркивает важность понимания особенностей программирования для AR и VR, оптимизации производительности, тестирования, управления ресурсами. Каждый раздел дополнен наглядными примерами. Книга будет полезна начинающим разработчикам....
Читать онлайн
Устали от повторяющихся выдержек из классиков и текстов о животных?Хотите подтянуть грамотность, но так, чтобы было интересно? Тогда вам наверняка пригодится эта книга!Все развороты в ней устроены по одному принципу: слева находится правило русского языка, разбирающее сложные случаи использования паронимов, вводных слов, а также производных предлогов, союзов и наречий; а справа – небанальный вопрос для отработки этого правила, который поможет вам не только грамотнее говорить и писать по-русски, ...
Читать онлайн
Всеобъемлющая книга, которая погружает в преобразующее путешествие личностного развития. Опираясь на принципы заботы о себе, постановки целей, мышления роста, жизнестойкости и преодоления самоограничивающих убеждений, эта книга предоставляет читателям практические стратегии и идеи для раскрытия их истинного потенциала.Она служит всеобъемлющей дорожной картой для людей, стремящихся к личностному росту и самореализации. Благодаря практическим стратегиям, ценным идеям и практическим шагам книга дае...
Читать онлайн
Это книга, которая поможет вам разобраться в механизмах формирования личности и жизненного пути с точки зрения астрологии. Автор, профессиональный астролог, предлагает подробное описание того, как читать натальную карту, как планеты влияют на те или иные черты характера, где скрыт потенциал человека и что можно улучшить в своей жизни благодаря этой информации. Книга содержит статьи ведущих специалистов в области астрологии и будет полезна для саморазвития и понимания своего жизненного пути.Эта к...
Читать онлайн
Узнайте, как развивать в себе музыкальный слух и как учиться сольфеджио самостоятельно! Автор книги, блогер Влад Елистратов, объясняет, что слух это всего лишь навык, и при определенном подходе его можно развивать в себе самостоятельно. С помощью авторских упражнений и специально подобранных под них плейлистов читатели смогут прокачать свои умения и открыть в себе новые таланты: слушайте музыку и воспроизводите ноты на инструменте!...
Читать онлайн
Книга предназначена для тех, кто в изучении немецкого языка не продвинулся дальше уровня «читаю со словарем» и желает научиться говорить (а не только читать и писать) по-немецки. Обучение разговорной речи происходит параллельно с повторением грамматики − шаг за шагом, от самого простого к более сложному. При этом грамматика не является самоцелью, а только подспорьем. Книга замечательно подходит для курсов разговорного немецкого языка для начинающих, но может быть также использована при индивидуа...
Читать онлайн
«Дорога уходит в даль…» – автобиографический роман-трилогия советской писательницы Александры Бруштейн (1884–1968 г.) для детей. В книгу вошла первая, одноименная часть трилогии. Предреволюционные настроения, повсеместная бедность и голод – в такое тяжелое время, на рубеже XIX–XX вв., в семье гениального врача, который, помимо основной работы в госпитале, безвозмездно лечит бедных людей, растет девочка Саша. Умная, внимательная и способная, она прекрасно понимает, что такое несправедливость, и в...
Читать онлайн
Стоит ли прислушаться к мнению бабушки, которая советует бросить никчемного супруга, найти Чемпиона и выйти за него замуж? Как обернуть в свою пользу финансовый кризис в стране? К чему может привести роман с начальником? Так ли уж необходимо жениться на армянской девушке, когда все её родственники «за»? И дядя Вазген тоже? Кто на самом деле организует транспортные пробки и отвечает за творческие озарения?...
Читать онлайн
Кир добился своего – теперь он один из войдов. Вот только их банда крепко насолила сильным мира сего. Им остается только отправиться в бега. Да только зачем это делать, когда между группировками назревает война?...
Читать онлайн
Лучше бы я умерла в тот день, чем очнулась обнаженная среди десятков картин, нарисованных таинственным мужчиной с королевскими замашками, который называет меня «Эмили». Есть проблема: я не Эмили и никогда не была ею.Он внушает суеверный страх и ужас, а его игры с веревками – лишь вершина айсберга изощренных манипуляций Леона.Больше всего я хочу сбежать от него и вспомнить, кем являюсь на самом деле, но из-за несчастного случая, повлекшего за собой антероградную амнезию, которая периодически обну...
Читать онлайн