Задача про улитку
В этом топике я предлагаю 3 довольно базовые задачи на сообразительность. Для начинающих программистов (вероятно, для совсем начинающих, а-ля школа, потому что для настоящего программиста слишком банально). Или, возможно, для собеседования, но для проверки конкретно одного узкого аспекта: насколько человек может вообще принимать решения самостоятельно, а не передирать и подправлять под себя.
Как известно, многие школьники срезаются на том, что просто делят 5 на (3−2) и получают 5 дней, не учитывая того, что в конце третьего дня улитка уже́ достигла вершины.
¹ Под действительными я имел в виду с плавающей точкой. Можно взять и целые. Суть в том, что в общем случае разность высоты столба и дневного пробега может быть не кратна пробегу за целые сутки.
² Эти варианты, так и быть, можно простить (или задать в условии, что так не будет).
Суть в том, чтобы решающий обработал хотя бы: (1) классический случай (вершина достигается не в первый день, но ровно к концу какого-то из дней); (2) некратную длину (вершина достигается не в первый день и не ровно к концу какого-то дня); (3) короткую длину (вершина достигается ещё до конца первого дня).
Задача 1
Вася с силой 100 H тянет за ручку динамометра, вторая ручка которого нерастяжимой верёвкой привязана к неподвижной стене.
Вопрос: Какую силу покажет динамометр?
Задача 2
Вася и Федя, каждый с силой по 100 H, тянут за противоположные ручки динамометра.
Вопрос: Какую силу покажет динамометр?
Задача 3
Вася тянет за ручку динамометра с силой 80 Н, а Федя, будучи послабее, тянет за противоположную ручку с силой 70 Н.
Вопрос: Какую силу покажет динамометр?
Скрытый текст:
Вроде бы банально, но многие даже студенты срезаются уже́ на второй задаче. Особенно именно если в таком порядке (первая — success, вторая — фейл, третья — о_О). И понимание этих задач позволяет глубже понять базовые принципы, которые студент мог прощёлкать за все N лет школы.
Via Habr
База
В качестве базы выбрана довольно известная задача про улитку для младших классов школы. «Улитка ползёт вверх по столбу высотой 5 метров. Каждый день она проползает вверх на 3 метра, а каждую ночь съезжает вниз на 2 метра. За сколько дней она доползёт до вершины столба.»Как известно, многие школьники срезаются на том, что просто делят 5 на (3−2) и получают 5 дней, не учитывая того, что в конце третьего дня улитка уже́ достигла вершины.
Для педантов: (вы указаны в доверенном списке пользователей для этого спойлера)
Здесь был опубликован спойлер, чтобы его прочитать вам нужно просмотреть полную версию текста.
Весь процесс начинается строго в начале светлой части суток, когда улитка может ползти вверх (а не посреди дня). Сверху столба горизонтальная площадка, достигнув которой улитка уже не съезжает вниз. Затраты времени по перемещению с вертикальной части поверхности столба на финальную горизонтальную считаем нулевыми.Задача 1
Вводятся действительные¹ неотрицательные числа: сколько проползает за день вверх; сколько съезжает за ночь вниз; высота столба. Должен вывестись ответ — минимальное необходимое целое число суток.Классическое решение: (вы указаны в доверенном списке пользователей для этого спойлера)
Содержимое спойлера вам недоступно:
- Для просмотра содержимого спойлера нужна регистрация на сайте.
¹ Под действительными я имел в виду с плавающей точкой. Можно взять и целые. Суть в том, что в общем случае разность высоты столба и дневного пробега может быть не кратна пробегу за целые сутки.
² Эти варианты, так и быть, можно простить (или задать в условии, что так не будет).
Суть в том, чтобы решающий обработал хотя бы: (1) классический случай (вершина достигается не в первый день, но ровно к концу какого-то из дней); (2) некратную длину (вершина достигается не в первый день и не ровно к концу какого-то дня); (3) короткую длину (вершина достигается ещё до конца первого дня).
Задача 2
То же самое. Только вернуть уже нужно не минимальное необходимое целое число суток, а «время» относительно длины суток (возможно нецелое число). Предполагается, что каждый день и ночь длится ровно по 0.5 (и процесс начинается ровно в начале дня).Задача 3
То же самое. Только процесс начинается в произвольное время, а не ровно в начале дня. Пользователь вводит произвольное действительное число — «время» начала процесса. Ответ — произвольное действительное число — «время» конца процесса.Inspired by (вы указаны в доверенном списке пользователей для этого спойлера)
Здесь был опубликован спойлер, чтобы его прочитать вам нужно просмотреть полную версию текста.
Очуменными задачами по физике, которые когда-то показал потрясающий препод на ФДП.Задача 1
Вася с силой 100 H тянет за ручку динамометра, вторая ручка которого нерастяжимой верёвкой привязана к неподвижной стене.
Вопрос: Какую силу покажет динамометр?
Задача 2
Вася и Федя, каждый с силой по 100 H, тянут за противоположные ручки динамометра.
Вопрос: Какую силу покажет динамометр?
Задача 3
Вася тянет за ручку динамометра с силой 80 Н, а Федя, будучи послабее, тянет за противоположную ручку с силой 70 Н.
Вопрос: Какую силу покажет динамометр?
Скрытый текст:
Вроде бы банально, но многие даже студенты срезаются уже́ на второй задаче. Особенно именно если в таком порядке (первая — success, вторая — фейл, третья — о_О). И понимание этих задач позволяет глубже понять базовые принципы, которые студент мог прощёлкать за все N лет школы.
Via Habr
Комментарии - 0