Большая Тёрка / Мысли /
Вот второй свиток Жозефина:
Наследником королевы Генриетты I была ее дочь королева Генриетта II. Через некоторое время, она, как и ее знаменитая мать, стала беспокоиться о проблеме неверности. Она решила действовать и послала своим подданным (женам) письма, c точным содержанием известной речи Генриетты I. Она добавила, что эти письма в конце концов гарантированно получат все жены. Генриетту II помнят как глупую и несправедливую королеву.
Какой вопрос и ответ заключены в этом свитке.
Эта история случилась давным‑давно, еще во времена крестовых походов. Один из рыцарей был захвачен мусульманами в плен и предстал перед их предводителем — султаном Саладином, который объявил, что освободит пленника и его коня, если получит выкуп в 100 тысяч золотых монет. «О, великий Саладин, — обратился тогда к султану рыцарь, у которого за душой не было ни гроша, — ты лишаешь последней надежды. У меня на родине мудрому и находчивому пленнику дается шанс выйти на свободу. Если он решит заданную головоломку, его отпускают на все четыре стороны, если нет — сумма выкупа удваивается!»
«Да будет так, — ответил Саладин, и сам обожавший головоломки. — Слушай же. Тебе дадут двенадцать золотых монет и простые весы с двумя чашками, но без гирь. Одна из монет фальшивая, однако неизвестно, легче она или тяжелее настоящих. Ты должен найти ее всего за три взвешивания. Hе справишься с задачей до утра — пеняй на себя!» А вы смогли бы выкрутиться?
Четыре приятеля решили подарить девушкам цветы. Утром следующего дня никто не смог точно вспомнить, что было вчера до общей попойки и кто кому подарил какие цветы. Совместными усилиями удалось вспомнить, что:
1. Каждой из четырех девушек подарили один букет;
2. У всех девушек были разные цветы;
3. Юрий целый день не видел Катю и Марину;
4. Дима не смог купить букет роз;
5. Андрей не дарил цветов ни Оле, ни Марии;
6. Георгий сначала хотел подарить букет Лене или Кате, но потом передумал;
7. Ни Лена, ни Оля не встречались с Димой;
8. Катя так и не получила свои любимые мимозы;
9. Андрей не покупал цветов на букву «Г» ;-) ;
10. Ни Лене, ни Оле не дарили роз;
11. Юрий не успел купить гладиолусы;
12. Георгий помнил, что видел у своих друзей букеты гвоздик и мимоз;
13. В итоге у Марины не оказалось гвоздик и гладиолусов, которые она ожидала получить;
14. Лена хвасталась подруге, что ей «не подарили этих дешевых мимоз».
У ребят сейчас жуткое похмелье и они просили им помочь вспомнить все.
Pебенок богатого шейха был похищен. За него потpебовали огpомный выкуп, котоpый был заплачен. Pебенок остался цел и невpедим; однако похитителя или похитителей нужно было отдать под суд. Двух людей подозpевали и их подвеpгли судебным слушаниям. В pезультате могло оказаться что никто из подозpеваемых не похищал pебенка, или это сделал один из них, или оба вместе. Hикто на самом деле не знал. Обвиняемых звали Аффан и Куpат. Восемь гоpожан A, B, C, D, E, F, G и H вышли впеpед как свидетели и сделали следующие утвеpждения:
A: Аффан поклоняется Мастдаю ;) (бог пpавдолюбцев).
B: Куpат поклоняется Ахаpману (бог лжецов).
C: A поклоняется Ахаpману.
D: B поклоняется Ахаpману.
E: C и D поклоняются Мастдаю.
F: Один из A и B не вpет.
G: E и F поклоняются одному богу.
H: G и я поклоняемся одному богу. Один из Аффана и Куpата не виновен.
Что следует из всей этой логической путаницы? Оба ли подозреваемых виновны, или может виновен только один, или оба невиновны? Кто есть кто из граждан?
Представьте себе целочисленную шкалу - ну, то есть, бесконечный в обе стороны ряд точек, занумерованных целыми числами - положительными и отрицательными.
Теперь представьте себе, что на эту самую шкалу спускаются на парашютах два робота. Они приземляются одновременно. В разных точках, естественно. После приземления каждый из роботов тут же бросает свой парашют прямо в той точке, на которую приземлился, и, не теряя времени даром, начинает действовать строго по заложенной в нем программе. Программа написана на простеньком языке, состоящем всего из четырех операторов:
[<метка>:] Left
[<метка>:] Right
[<метка>:] GoTo <метка>
[<метка>:] PGoTo <метка>
При исполнении оператора Left робот делает один шаг влево, то есть перепрыгивает на точку с числом на единицу меньшим, а при исполнении оператора Right - шаг вправо. Оператор GoTo - обычный оператор безусловного перехода на указанную метку в программе. Оператор PGoTo - оператор условного перехода, где условием является наличие парашюта в той точке, на которой стоит робот (все равно - своего парашюта или чужого).
Итак, роботы приземляются, бросают парашюты и в один и тот же момент начинают действовать по заложенным в них программам. Причем действуют они синхронно. Давайте будем считать, что каждую секунду роботы одновременно исполняют очередной оператор своей программы (на исполнение операторов GoTo и PGoTo тоже требуется одна секунда).
Теперь представьте себе, что программы у роботов совершенно одинаковые. Тогда они и вести себя будут совершенно одинаково, весело прыгая по точкам и не мешая друг другу. Правда? Ничего подобного! Оказывается, можно написать такую программу, при исполнении которой роботы обязательно встретятся, то есть в какой-то момент прыгнут в одну и ту же точку!
Именно такую программу вам и предстоит написать. Учтите, что программа должна быть честной. Она не должна содержать операторов, отличных от упомянутых четырех, и, кроме того, ее текст, конечно же, должен быть конечным - то есть состоять из конечного числа строк-операторов. Постарайтесь придумать как можно более короткую программу.
Совершенно не обязательно, чтобы программа закончилась в тот самый момент, когда роботы встретятся. Пусть себе прыгают дальше - лишь бы встретились хоть раз. Не обязательно даже, чтобы программа вообще кончалась. Она вполне может включать бесконечный цикл. Если хотите, можете считать, что это - роботы-диверсанты: каждый из них несет половину критической массы ядерного заряда, и при встрече происходит взрыв, уничтожающий обоих роботов. Жалко только, что при этом пострадает шкала целых чисел.
Узнику предоставлено право выйти на свободу, если он справится с таким заданием: перед ним опять две двери, одна из них ведет на волю, другая — дорога к смерти. Здесь же сидят два стражника, причем один из них либо «лжец», либо «правдец», а второй — «хитрец», то есть человек, который говорит правду и ложь строго поочередно (то есть либо на нечетные вопросы отвечает ложью, а на четные — правдой, либо наоборот, на нечетные говорит правду, а на четные — лжет). Оба стражника знают, какая из дорог ведет на волю, но узнику неизвестно, кто из стражников хитрец. Узник имеет право задать два вопроса одному из стражников. Как ему определить дорогу, ведущую на свободу?
Двум братьям досталось в наследство стадо овец. Они продали всех овец, выручив за каждую по столько же долларов, сколько всего овец было в стаде. Деньги они получили в десятидолларовых банкнотах, за исключением остатка (монетами дали меньше 10 долларов). Они разделили между собой купюры, положив их на стол и беря по одной по очереди, пока ни одной купюры не осталось.
— Это нечестно, — пожаловался младший брат. — Ты брал первым, и последняя купюра тоже досталась тебе, так что тебе досталось на 10 долларов больше, чем мне.
Старший брат отдал ему все серебряные доллары, но младший не успокоился.
— Ты дал мне меньше десяти долларов, — возражал он, — и должен ещё.
— И то правда, — согласился старший, — давай лучше я выпишу тебе чек, чтобы у нас все было поровну.
Так он и сделал. Какова была сумма чека?
Каждый из членов клуба ПЛ («правда‑ложь») является либо правдивым человеком, всегда честно отвечающим на вопрос, либо лжецом, который всегда отвечает на вопросы нечестно. Когда я впервые посетил этот клуб, то обнаружил всех его членов (исключительно мужчин) сидящими вокруг большого круглого стола за ланчем. Не было никакой возможности отличить правдивых людей от лжецов по внешнему виду, поэтому я спрашивал у всех по очереди, кем является каждый из них. Это оказалось бесполезным занятием. Каждый уверял меня, что говорит правду. Я попробовал ещё раз, спросив теперь у каждого, кем является его сосед слева. К моему удивлению, каждый сказал мне, что его сосед слева — лжец. Позже в тот же день, уже дома, я начал писать заметки о посещении клуба и обнаружил, что забыл подсчитать число человек, сидевших за столом. Я позвонил президенту клуба. Он сказал мне, что в клубе 37 членов. После того как повесил трубку, я понял, что не могу быть уверенным в точности этого числа, так как не знаю, лжет президент или говорит правду. Тогда я позвонил секретарю клуба. «Нет, нет, — сказал мне секретарь. — К сожалению, наш президент — законченный лжец. На самом деле за столом было 40 человек». Кому из них я должен был верить, и верить ли хотя бы одному вообще? Неожиданно я увидел простой способ разрешения загадки. Определите,сколько человек сидит за столом.