Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.21;
Скачать: CL | DM;

Вниз

Забавная задачка   Найти похожие ветки 

 
default ©   (2004-11-05 02:26) [0]

"Представьте себе целочисленную шкалу - ну, то есть, бесконечный в обе стороны ряд точек, занумерованных целыми числами - положительными и отрицательными.
 Теперь представьте себе, что на эту самую шкалу спускаются на парашютах два робота. Они приземляются одновременно. В разных точках, естественно. После приземления каждый из роботов тут же бросает свой парашют прямо в той точке, на которую приземлился, и, не теряя времени даром, начинает действовать строго по заложенной в нем программе. Программа написана на простеньком языке, состоящем всего из четырех операторов:

[<метка>:] Left
[<метка>:] Right
[<метка>:] GoTo <метка>
[<метка>:] PGoTo <метка>

 При исполнении оператора Left робот делает один шаг влево, то есть перепрыгивает на точку с числом на единицу меньшим, а при исполнении оператора Right - шаг вправо. Оператор GoTo - обычный оператор безусловного перехода на указанную метку в программе. Оператор PGoTo - оператор условного перехода, где условием является наличие парашюта в той точке, на которой стоит робот (все равно - своего парашюта или чужого).
 Итак, роботы приземляются, бросают парашюты и в один и тот же момент начинают действовать по заложенным в них программам. Причем действуют они синхронно. Давайте будем считать, что каждую секунду роботы одновременно исполняют очередной оператор своей программы (на исполнение операторов GoTo и PGoTo тоже требуется одна секунда).
 Теперь представьте себе, что программы у роботов совершенно одинаковые. Тогда они и вести себя будут совершенно одинаково, весело прыгая по точкам и не мешая друг другу. Правда? Ничего подобного! Оказывается, можно написать такую программу, при исполнении которой роботы обязательно встретятся, то есть в какой-то момент прыгнут в одну и ту же точку!
 Именно такую программу вам и предстоит написать. Учтите, что программа должна быть честной. Она не должна содержать операторов, отличных от упомянутых четырех, и, кроме того, ее текст, конечно же, должен быть конечным - то есть состоять из конечного числа строк-операторов. Постарайтесь придумать как можно более короткую программу.
 Совершенно не обязательно, чтобы программа закончилась в тот самый момент, когда роботы встретятся. Пусть себе прыгают дальше - лишь бы встретились хоть раз. Не обязательно даже, чтобы программа вообще кончалась. Она вполне может включать бесконечный цикл. Если хотите, можете считать, что это - роботы-диверсанты: каждый из них несет половину критической массы ядерного заряда, и при встрече происходит взрыв, уничтожающий обоих роботов. Жалко только, что при этом пострадает шкала целых чисел."


 
GuAV ©   (2004-11-05 02:42) [1]

0: Right
  PGoTo 3
  GoTo 0
3: Right
  Right   ; *
  GoTo 3

* - лишнее, если при отсутствии перехода тоже тратится время.


 
Nikolay M. ©   (2004-11-05 09:55) [2]

Старенькая задачка. http://golovolomka.hobby.ru/logic/otvet/hard11.htm
:)



Страницы: 1 вся ветка

Текущий архив: 2004.11.21;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.483 c
4-1097211141
drusha
2004-10-08 08:52
2004.11.21
как проиграть *.wav файл в voice модем


1-1099929213
PURGEN
2004-11-08 18:53
2004.11.21
Моргания..


1-1099557247
V l a d i m i r
2004-11-04 11:34
2004.11.21
Разрешение экрана


1-1099657062
Hadroran
2004-11-05 15:17
2004.11.21
Zoom for Image


1-1099394494
Ms.Dunkul
2004-11-02 14:21
2004.11.21
Обозначение клавиш.