Два программиста готовятся показать директору новую версию программы, над которой они работали. Программа состоит из трёх модулей. В самый последний момент они поняли, что забыли к каждому модулю написать документацию и приложить исходные файлы, а это необходимо для презентации директору. Чтобы написать документацию для одного модуля, любому программисту требуется полчаса, а собрать все исходники для того же модуля занимает 10 минут. Как быстро товарищи могут показать директору готовый проект?
Эта задача решается очень просто, если вспомнить, что у нас два программиста, которые могут работать параллельно.
Им нужно написать три документации, каждая по 30 минут, и собрать три комплекта файлов, каждый по 10 минут. Получается, что все задачи занимают 3 × 30 + 3 × 10 = 120 минут.
Если они будут работать параллельно и одновременно, то самое быстрое, когда они смогут прийти к директору, это через 120 / 2 = 60 минут. Давайте посмотрим, что каждый может сделать за это время.
Допустим, первый программист говорит: «Я буду писать документацию для двух модулей». Эта задача займёт у него 30 + 30 = 60 минут. Как раз то, что нужно.
Тогда второй может ему ответить: «Отлично, тогда я напишу документы к третьему модулю и потом соберу все исходники по проекту». На это ему потребуется 30 + 10 + 10 + 10 = 60 минут, как и первому.
Получается, что если они смогут сразу договориться между собой и не спорить, чья задача сложнее, то уже через час они встретятся с директором и получат премии (или нет).