HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-21
1 <p><a>#статьи</a></p>
1 <p><a>#статьи</a></p>
2 <ul><li>21 сен 2021</li>
2 <ul><li>21 сен 2021</li>
3 <li>0</li>
3 <li>0</li>
4 </ul><h2>Три программиста и отпуск</h2>
4 </ul><h2>Три программиста и отпуск</h2>
5 <p>Запутанная задача на логику. Распутываем вместе с репетитором.</p>
5 <p>Запутанная задача на логику. Распутываем вместе с репетитором.</p>
6 <p>Альберто Блинчиков для Skillbox Media</p>
6 <p>Альберто Блинчиков для Skillbox Media</p>
7 <p>Автор статей о программировании. Изучает Python, разбирает сложные термины и объясняет их на пальцах новичкам. Если что-то непонятно - возможно, вы ещё не прочли его следующую публикацию.</p>
7 <p>Автор статей о программировании. Изучает Python, разбирает сложные термины и объясняет их на пальцах новичкам. Если что-то непонятно - возможно, вы ещё не прочли его следующую публикацию.</p>
8 <p>Преподаватель математики, автор YouTube-канала "Математика с Аней" и соавтор учебников и методических рекомендаций к учебникам по математике.</p>
8 <p>Преподаватель математики, автор YouTube-канала "Математика с Аней" и соавтор учебников и методических рекомендаций к учебникам по математике.</p>
9 <p>Анна готовит учеников к ЕГЭ в школе "<a>Топскул</a>" и консультирует онлайн-школы по вопросам эффективного обучения.</p>
9 <p>Анна готовит учеников к ЕГЭ в школе "<a>Топскул</a>" и консультирует онлайн-школы по вопросам эффективного обучения.</p>
10 <p>Три друга-программиста решили отправиться в отпуск и теперь выбирают, куда им ехать. У них есть четыре варианта: Рим, Брюссель, Осло и Норильск. Однако они не смогли договориться и решили провести голосование. Правила такие:</p>
10 <p>Три друга-программиста решили отправиться в отпуск и теперь выбирают, куда им ехать. У них есть четыре варианта: Рим, Брюссель, Осло и Норильск. Однако они не смогли договориться и решили провести голосование. Правила такие:</p>
11 <ol><li>Сначала голосуют за поездку в Рим. Если хотя бы двое будут ЗА - голосование прекращается и все отправляются в Рим.</li>
11 <ol><li>Сначала голосуют за поездку в Рим. Если хотя бы двое будут ЗА - голосование прекращается и все отправляются в Рим.</li>
12 <li>Если большинство не поддержит идею с Римом - голосуют по поездке в Брюссель.</li>
12 <li>Если большинство не поддержит идею с Римом - голосуют по поездке в Брюссель.</li>
13 <li>Если и с Брюсселем не сложится - голосуют по поводу Осло.</li>
13 <li>Если и с Брюсселем не сложится - голосуют по поводу Осло.</li>
14 <li>Если и с Осло не получится - все отправятся загорать в Норильск.</li>
14 <li>Если и с Осло не получится - все отправятся загорать в Норильск.</li>
15 </ol><p>Каждый программист действует безупречно логично: знает свои приоритеты и приоритеты других участников. Например, первый программист больше всего хочет попасть в Осло. Но если коллеги его не поддержат, он выберет Норильск. Если и с Норильском не сложится, остаётся Рим. Ну и на крайний случай - Брюссель. Приоритеты всех участников - в таблице:</p>
15 </ol><p>Каждый программист действует безупречно логично: знает свои приоритеты и приоритеты других участников. Например, первый программист больше всего хочет попасть в Осло. Но если коллеги его не поддержат, он выберет Норильск. Если и с Норильском не сложится, остаётся Рим. Ну и на крайний случай - Брюссель. Приоритеты всех участников - в таблице:</p>
16 <p>Вопрос: какой город выберут программисты и будет ли это лучшим решением для большинства?</p>
16 <p>Вопрос: какой город выберут программисты и будет ли это лучшим решением для большинства?</p>
17 <p>В условии задачи есть фраза: "Каждый программист действует безупречно логично". А значит, все герои голосуют по безупречно логичным правилам - последовательно, непротиворечиво, не подчиняясь принципам человеческой психологии и общепринятым правилам поведения:</p>
17 <p>В условии задачи есть фраза: "Каждый программист действует безупречно логично". А значит, все герои голосуют по безупречно логичным правилам - последовательно, непротиворечиво, не подчиняясь принципам человеческой психологии и общепринятым правилам поведения:</p>
18 <strong>Безупречно логичное поведение</strong><strong>Суровая жизненная реальность</strong>Если в задаче сказано, что программист 20 лет не опаздывает, не ходит в отпуск и не требует повышения, то так и есть. В жизни почти все программисты хоть иногда опаздывают, регулярно ходят в отпуск и стремятся к карьерному росту. Если нужно проголосовать по строгим правилам, то каждый участник будет следовать этим правилам от начала и до конца. Кто-то из участников может смухлевать, кто-то поймёт правила по-своему и нарушит их, а кто-то вообще может проигнорировать правила и само голосование. Безупречно логичные персонажи думают о личной выгоде, никому не помогают и ни с кем не договариваются. Несколько программистов с общим интересом могут договориться и увеличить свои шансы на получение желаемого результата. Все действуют в личных интересах и всегда знают приоритеты других персонажей. Следовательно, все принимают решения, отталкиваясь от предположительных действий других участников. Всегда сложно узнать, как и о чём думают другие люди.<p>В задачах на безупречную логику нужно распутывать решение с конца. У нас есть конечное количество участников и действий, которые нужно обязательно выполнить, - то есть процессы не бесконечны и их можно выстроить последовательно, один за другим.</p>
18 <strong>Безупречно логичное поведение</strong><strong>Суровая жизненная реальность</strong>Если в задаче сказано, что программист 20 лет не опаздывает, не ходит в отпуск и не требует повышения, то так и есть. В жизни почти все программисты хоть иногда опаздывают, регулярно ходят в отпуск и стремятся к карьерному росту. Если нужно проголосовать по строгим правилам, то каждый участник будет следовать этим правилам от начала и до конца. Кто-то из участников может смухлевать, кто-то поймёт правила по-своему и нарушит их, а кто-то вообще может проигнорировать правила и само голосование. Безупречно логичные персонажи думают о личной выгоде, никому не помогают и ни с кем не договариваются. Несколько программистов с общим интересом могут договориться и увеличить свои шансы на получение желаемого результата. Все действуют в личных интересах и всегда знают приоритеты других персонажей. Следовательно, все принимают решения, отталкиваясь от предположительных действий других участников. Всегда сложно узнать, как и о чём думают другие люди.<p>В задачах на безупречную логику нужно распутывать решение с конца. У нас есть конечное количество участников и действий, которые нужно обязательно выполнить, - то есть процессы не бесконечны и их можно выстроить последовательно, один за другим.</p>
19 <p>Ещё обратите внимание на формулировку вопроса. Она предполагает два ответа: 1) куда поедут программисты и 2) будет ли это лучшим решением для большинства. Первый вопрос проверяет навык логического мышления; второй - внимательность.</p>
19 <p>Ещё обратите внимание на формулировку вопроса. Она предполагает два ответа: 1) куда поедут программисты и 2) будет ли это лучшим решением для большинства. Первый вопрос проверяет навык логического мышления; второй - внимательность.</p>
20 <p><strong>Шаг №1.</strong>Программисты будут делать выбор между четырьмя городами, но проводят три этапа голосования - поедут они в Норильск или нет, зависит от голосования за Осло. То есть на третьем этапе они будут выбирать между Осло и Норильском - потому что варианта поехать в Рим или Брюссель к тому времени не останется.</p>
20 <p><strong>Шаг №1.</strong>Программисты будут делать выбор между четырьмя городами, но проводят три этапа голосования - поедут они в Норильск или нет, зависит от голосования за Осло. То есть на третьем этапе они будут выбирать между Осло и Норильском - потому что варианта поехать в Рим или Брюссель к тому времени не останется.</p>
21 <p>Смотрим таблицу приоритетов участников и понимаем, что на третьем этапе первый и второй программисты проголосуют ЗА Осло, а третий - ПРОТИВ. Вывод: если голосование дойдёт до третьего этапа, то программисты отправятся в Осло, а не в Норильск. Уже неплохо :)</p>
21 <p>Смотрим таблицу приоритетов участников и понимаем, что на третьем этапе первый и второй программисты проголосуют ЗА Осло, а третий - ПРОТИВ. Вывод: если голосование дойдёт до третьего этапа, то программисты отправятся в Осло, а не в Норильск. Уже неплохо :)</p>
22 <p><strong>Шаг №2.</strong>Теперь предположим, что голосование не дойдёт до третьего этапа. В этом случае программисты будут выбирать между поездкой в Брюссель и Осло, так как мы уже увидели - на третьем этапе они точно не выберут Норильск. А значит, первый программист проголосует ПРОТИВ поездки в Брюссель, а второй и третий - ЗА. Победит Брюссель.</p>
22 <p><strong>Шаг №2.</strong>Теперь предположим, что голосование не дойдёт до третьего этапа. В этом случае программисты будут выбирать между поездкой в Брюссель и Осло, так как мы уже увидели - на третьем этапе они точно не выберут Норильск. А значит, первый программист проголосует ПРОТИВ поездки в Брюссель, а второй и третий - ЗА. Победит Брюссель.</p>
23 <p><strong>Шаг №3.</strong>Поднимемся на следующую ступеньку и узнаем, что будет с голосованием за Рим. Здесь участники делают выбор между Римом и Брюсселем. Почему так? Да потому, что они уже понимают: на втором этапе голосования точно победит Брюссель.</p>
23 <p><strong>Шаг №3.</strong>Поднимемся на следующую ступеньку и узнаем, что будет с голосованием за Рим. Здесь участники делают выбор между Римом и Брюсселем. Почему так? Да потому, что они уже понимают: на втором этапе голосования точно победит Брюссель.</p>
24 <p>Первый и третий программист проголосуют ЗА поездку в Рим, а второй - ПРОТИВ. То есть вариант с отпуском в Риме будет принят после первого голосования. Отлично!</p>
24 <p>Первый и третий программист проголосуют ЗА поездку в Рим, а второй - ПРОТИВ. То есть вариант с отпуском в Риме будет принят после первого голосования. Отлично!</p>
25 <p>Итог: программисты поедут в Рим.</p>
25 <p>Итог: программисты поедут в Рим.</p>
26 <p>Теперь разберёмся со второй частью вопроса. Если голосование пройдёт без учёта безупречно логичных правил, то на исход повлияет договорённость между участниками. Рассмотрим два возможных сценария.</p>
26 <p>Теперь разберёмся со второй частью вопроса. Если голосование пройдёт без учёта безупречно логичных правил, то на исход повлияет договорённость между участниками. Рассмотрим два возможных сценария.</p>
27 <p><strong>Первый сценарий.</strong>Первый и второй программист объединятся и выберут Осло - в их общей системе приоритетов этот город стоит выше, чем Рим.</p>
27 <p><strong>Первый сценарий.</strong>Первый и второй программист объединятся и выберут Осло - в их общей системе приоритетов этот город стоит выше, чем Рим.</p>
28 <p>По-другому двум программистам объединяться невыгодно:</p>
28 <p>По-другому двум программистам объединяться невыгодно:</p>
29 <ul><li>Если первый участник объединится с третьим, то они выберут Норильск. Это невыгодно первому участнику, который предпочитает Осло, и, чтобы организовать поездку в город своей мечты, он может договориться со вторым программистом.</li>
29 <ul><li>Если первый участник объединится с третьим, то они выберут Норильск. Это невыгодно первому участнику, который предпочитает Осло, и, чтобы организовать поездку в город своей мечты, он может договориться со вторым программистом.</li>
30 <li>Если второй участник объединится с третьим, то они будут выбирать между Брюсселем и Норильском. У первого программиста Норильск в приоритетах стоит выше Брюсселя, поэтому на общем голосовании победит Норильск. Второму программисту это невыгодно, поскольку он предпочитает Брюссель или Осло - то есть может договориться с первым участником о поездке в Брюссель или Осло.</li>
30 <li>Если второй участник объединится с третьим, то они будут выбирать между Брюсселем и Норильском. У первого программиста Норильск в приоритетах стоит выше Брюсселя, поэтому на общем голосовании победит Норильск. Второму программисту это невыгодно, поскольку он предпочитает Брюссель или Осло - то есть может договориться с первым участником о поездке в Брюссель или Осло.</li>
31 </ul><p>Итог:<strong></strong>если два программиста смогут договориться, то лучшим решением для большинства будет поездка в Осло.</p>
31 </ul><p>Итог:<strong></strong>если два программиста смогут договориться, то лучшим решением для большинства будет поездка в Осло.</p>
32 <p><strong>Второй сценарий.</strong>Первый и второй участник не могут объединиться и должны искать компромисс с третьим программистом. В этом случае оптимальным решением будет Норильск, поскольку по сумме всех приоритетов он окажется выше Осло, Брюсселя и Рима.</p>
32 <p><strong>Второй сценарий.</strong>Первый и второй участник не могут объединиться и должны искать компромисс с третьим программистом. В этом случае оптимальным решением будет Норильск, поскольку по сумме всех приоритетов он окажется выше Осло, Брюсселя и Рима.</p>
33 <p>Добавим к графику расчёты:</p>
33 <p>Добавим к графику расчёты:</p>
34 <ul><li>У первого программиста Норильск стоит на втором<strong></strong>месте; у второго - на третьем; у третьего - на первом. В сумме Норильск наберёт<strong>6 баллов</strong>.</li>
34 <ul><li>У первого программиста Норильск стоит на втором<strong></strong>месте; у второго - на третьем; у третьего - на первом. В сумме Норильск наберёт<strong>6 баллов</strong>.</li>
35 <li>Осло -<strong>7 баллов</strong>.</li>
35 <li>Осло -<strong>7 баллов</strong>.</li>
36 <li>Брюссель -<strong>8 баллов</strong>.</li>
36 <li>Брюссель -<strong>8 баллов</strong>.</li>
37 <li>Рим -<strong>9 баллов</strong>.</li>
37 <li>Рим -<strong>9 баллов</strong>.</li>
38 </ul><p>Итог: чем меньше баллов, тем выше приоритет. Следовательно, если программисты попытаются договориться и математически учесть все приоритеты, лучшим решением для большинства будет Норильск.</p>
38 </ul><p>Итог: чем меньше баллов, тем выше приоритет. Следовательно, если программисты попытаются договориться и математически учесть все приоритеты, лучшим решением для большинства будет Норильск.</p>
39 <a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>
39 <a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>