Форум умных людей

Задачи и головоломки => Логические задачи и головоломки => Тема начата: fortpost от Май 12, 2015, 10:53:55



Название: Кто злой - тех долой!
Отправлено: fortpost от Май 12, 2015, 10:53:55
Император пригласил на праздник 2015 волшебников, некоторые из которых добрые, а остальные злые. Добрый волшебник всегда говорит правду, а злой может говорить что угодно. При этом волшебники знают, кто добрый и кто злой, а император нет. На празднике император задает каждому волшебнику (в каком хочет порядке) по вопросу, на которые можно ответить "да" или "нет". Опросив всех волшебников, император изгоняет одного. Изгнанный волшебник выходит в заколдованную дверь, и император узнает, добрый он был или злой. Затем император вновь задает каждому из оставшихся волшебников по вопросу, вновь одного изгоняет, и так далее, пока император не решит остановиться (он может это сделать после любого вопроса). Как император может изгнать всех злых волшебников, удалив при этом как можно меньше добрых?


Название: Re: Кто злой - тех долой!
Отправлено: Tim от Май 12, 2015, 11:12:46
Нудно писать, но думаю максимум одним добрым придётся пожертвовать. Суть выделить одного честного. А дальше от него по кругу гонять вопрос - добрый ли следующий.


Название: Re: Кто злой - тех долой!
Отправлено: fortpost от Май 12, 2015, 11:29:46
Нудно писать, но думаю максимум одним добрым придётся пожертвовать. Суть выделить одного честного. А дальше от него по кругу гонять вопрос - добрый ли следующий.
В принципе так. Но интересно было бы на подробное решение глянуть.


Название: Re: Кто злой - тех долой!
Отправлено: zhekas от Май 12, 2015, 13:04:37
Цикл пока не найдём доброго

       i = 1;
       Пока i-ый не скажет что последний добрый
       {
            i = i+1;
        }
       Если никто не сказал, что последний добрый  Тогда
            последний злой. Помещаем его в заколдованную дверь;
       Иначе
              Помещаем i-го в заколдованную дверь;
              Если i-ый добрый Тогда
                    последний добрый.  Мы нашли доброго
              Иначе
                      i-ый злой. Его не жалко.
              КонецЕсли
       КонецЕсли
КонецЦикла