Сложная логическая задача на повышение

Если самая слож­ная зада­ча в мире вам ока­за­лась не по зубам, у нас есть вари­ант попро­ще. В нём толь­ко один вопрос и нуж­но най­ти все­го один ответ. Попро­буй­те поду­мать над зада­чей несколь­ко минут, преж­де чем откры­вать реше­ние.

Задач­ка:

В одном IT-стартапе рабо­тал джуниор-программист. Он посто­ян­но тре­бо­вал у началь­ства повы­ше­ния, и в один из дней дирек­тор не выдер­жал и ска­зал, что у него есть для джу­ни­о­ра загад­ка. Если он её решит — полу­чит повы­ше­ние, а если нет — его назна­чат на самый скуч­ный, самый мерз­кий, самый нелю­би­мый про­ект ком­па­нии.

Джу­ни­ор согла­сил­ся, и тогда дирек­тор ему ска­зал:

  • В моём каби­не­те тебя ждут два моих заме­сти­те­ля,
  • на сто­ле лежат два кон­вер­та — синий и крас­ный.
  • В одном из них при­каз о тво­ём повы­ше­нии,
  • в дру­гом — о пере­во­де на мерз­кий про­ект.
  • Заме­сти­те­ли зна­ют, что в каком кон­вер­те,
  • ты можешь любо­му из них задать толь­ко один вопрос.
  • Один из заме­сти­те­лей тебе ска­жет прав­ду,
  • дру­гой соврёт,
  • кто имен­но — я тебе не ска­жу.

Джу­ни­ор поду­мал, задал свой вопрос и выта­щил кон­верт с повы­ше­ни­ем. Что он спро­сил?

Решение

Выпи­шем все усло­вия и огра­ни­че­ния, кото­рые у нас есть:

  • мож­но задать ров­но один вопрос;
  • его мож­но задать толь­ко одно­му заме­сти­те­лю, любо­му на наш выбор;
  • один зам всё вре­мя врёт, вто­рой гово­рит прав­ду;
  • мы не зна­ем, кто из них кто;
  • они точ­но зна­ют, в каком кон­вер­те лежит при­каз о повы­ше­нии.

Полу­ча­ет­ся, что их ответ дол­жен точ­но ука­зать нам, что в каком кон­вер­те лежит. Но так как мы не зна­ем, кто гово­рит прав­ду, а кто нет, то выхо­дит, что оба заме­сти­те­ля долж­ны дать нам один и тот же ответ.

Мы не можем спра­ши­вать у заме­сти­те­лей про них самих, пото­му что не зна­ем, прав­ди­вый будет ответ или нет, но мы можем это исполь­зо­вать, если спро­сим у них что-то про сосе­да. Самый логич­ный вопрос, кото­рый мож­но задать любо­му из них, зву­чит так: «Дру­гой заме­сти­тель гово­рит прав­ду?»

Если мы спро­сим это у прав­ди­во­го зама, то полу­чим в ответ «Нет». Если мы спро­сим это у зама-лжеца, то он нам соврёт и тоже отве­тит «Нет». Полу­ча­ет­ся, что кому бы мы ни зада­ли этот вопрос, нам дадут один и тот же ответ, а зна­чит, что наша догад­ка про вопрос о сосе­де вер­на.

Нам нуж­но узнать, в каком кон­вер­те лежит при­каз о повы­ше­нии, поэто­му вопрос будет зву­чать так: «Если я спро­шу у дру­го­го заме­сти­те­ля, в каком кон­вер­те лежит при­каз о повы­ше­нии, на какой кон­верт он пока­жет?» Допу­стим, при­каз в синем кон­вер­те, и тогда отве­ты будут таки­ми:

  • Прав­ди­вый зам зна­ет, что вто­рой точ­но соврёт и вме­сто сине­го ска­жет про крас­ный, поэто­му прав­ди­вый зам даст ответ «На крас­ный».
  • Лжи­вый зам зна­ет, что пер­вый точ­но ска­жет прав­ду про синий кон­верт, но так как он всё вре­мя врёт, то отве­тит «На крас­ный».

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

Всё просто
Что­бы полу­чить повы­ше­ние, нуж­на прак­ти­ка, а что­бы стать кру­тым — Прак­ти­кум.