Найти в Дзене
Журнал «Код»

Решаем как программисты: таракан на стене

Оглавление

Всё очевидно: мы смоделируем решение задачи в реальном мире.

У нас есть задача про таракана, как он ползает по стене и хочет забраться к соседям. Мы уже решали её обычным способом, теперь сделаем это на Python. Потому что Python — это круто, Python — это класс, не было бы Python — не было бы нас.

Условие задачи

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

Вопрос: сколько часов у вас есть на покупку ловушек для тараканов, если расстояние от вас до соседей по вентиляционной шахте — 7 м?

Задаём условия

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

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

Алгоритм для решения

Теперь напишем алгоритм, который будет считать часы, которые понадобятся таракану на движение по шахте. Основная мысль такая:

Каждый час таракан проползает определённое расстояние наверх и немного сползает вниз. При этом мы постоянно проверяем, достиг он края шахты или нет.

Запишем эту мысль в виде кода:

Здесь мы используем операторы += и -=. Они работают так: берут переменную и прибавляют или отнимают от неё то значение, которое стоит после оператора. Например, 3 += 2 будет 5, а 10 -= 4 будет 6. Последнее, что нам осталось, — вывести результат работы на экран:

# Выводим количество полученных часов
print("Таракану понадобится" ,hours, "часов.")

Готовый код (вставьте в Jupyter и нажмите Shift + Enter):

Теперь с помощью этого кода мы можем решить любую задачу про таракана с разными начальными условиями. Чтобы их поменять, достаточно переделать нужную переменную в самом начале программы.

Например, попробуйте поменять код, чтобы он решал ту же задачу, но с новым условием: каждые два часа таракан отдыхает в течение часа и никуда при этом не ползёт.

Подписывайтесь на наш канал, чтобы не пропустить новые задачи!