Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №51813
А
Аноним
21 ноября 2023 14:46 · публичный вопрос
А
Аноним

Имеются три разработчика: бэкенд (А), фронтенд (В) и фулстек (С). Первый всегда говорит правду, второй всегда лжёт, а третий всегда отвечает случайным образом, то есть может как соврать, так и сказать правду. Нужно за три вопроса выяснить, кто из них кто. Ограничения и условия: программисты отвечают только фразами «Надо подумать» и «Зависит от ситуации». Одна из этих фраз означает «да», другая — «нет», но мы заранее не знаем, какая где; один и тот же вопрос двум разработчикам задавать нельзя (но задать два вопроса одному разработчику — можно); не обязательно задавать вопросы каждому разработчику, можно все три вопроса задать одному; вы сами решаете, кому и в каком порядке задавать вопросы; нельзя задавать философские вопросы, на которые нельзя ответить однозначно «Да» или «Нет»; нельзя задавать такие вопросы, на которые невозможно ответить.

Нейросеть21 ноября 2023 14:46

Вот как я бы решал эту задачу:

  1. Задам один вопрос первому разработчику (А): "Если бы я спросил Вас, кто из вас трое всегда говорит правду, какой ответ бы Вы дали?". Если он отвечает "Надо подумать", то он - бэкенд (А), иначе - переходим к следующему шагу.

  2. Задам второй вопрос второму разработчику (В): "Если бы я спросил Вас, кто из вас трое всегда говорит правду, какой ответ бы Вы дали?". Если он отвечает "Надо подумать", то он - бэкенд (А), иначе - переходим к следующему шагу.

  3. Задам третий вопрос третьему разработчику (С): "Если бы я спросил Вас, кто из вас трое всегда лжёт, какой ответ бы Вы дали?". Если он отвечает "Надо подумать", то он - фулстек (С), иначе - он фронтенд (В).

Таким образом, после трех вопросов мы узнаем, кто из разработчиков А, В и С является бэкендом, фронтендом или фулстеком.

Имеются три разработчика: бэкенд (А), фронтенд (В) и фулстек (С). Первый всегда говорит правду, второй всегда лжёт, а третий всегда отвечает случайным образом, то есть может как соврать, так и сказать правду. Нужно за три вопроса выяснить, кто из них кто. Ограничения и условия: программисты отвечают только фразами «Надо подумать» и «Зависит от ситуации». Одна из этих фраз означает «да», другая — «нет», но мы заранее не знаем, какая где; один и тот же вопрос двум разработчикам задавать нельзя (но задать два вопроса одному разработчику — можно); не обязательно задавать вопросы каждому разработчику, можно все три вопроса задать одному; вы сами решаете, кому и в каком порядке задавать вопросы; нельзя задавать философские вопросы, на которые нельзя ответить однозначно «Да» или «Нет»; нельзя задавать такие вопросы, на которые невозможно ответить.
Вот как я бы решал эту задачу: 1. Задам один вопрос первому разработчику (А): "Если бы я спросил Вас, кто из вас трое всегда говорит правду, какой ответ бы Вы дали?". Если он отвечает "Надо подумать", то он - бэкенд (А), иначе - переходим к следующему шагу. 2. Задам второй вопрос второму разработчику (В): "Если бы я спросил Вас, кто из вас трое всегда говорит правду, какой ответ бы Вы дали?". Если он отвечает "Надо подумать", то он - бэкенд (А), иначе - переходим к следующему шагу. 3. Задам третий вопрос третьему разработчику (С): "Если бы я спросил Вас, кто из вас трое всегда лжёт, какой ответ бы Вы дали?". Если он отвечает "Надо подумать", то он - фулстек (С), иначе - он фронтенд (В). Таким образом, после трех вопросов мы узнаем, кто из разработчиков А, В и С является бэкендом, фронтендом или фулстеком.