БлогNot. 2 классические школьные задачи - оказывается, их ещё решают...

2 классические школьные задачи - оказывается, их ещё решают...

Волк, коза и капуста; устройство с двумя кнопками (2x и x+1)

1. На берегу реки стоит крестьянин с лодкой, а рядом с ним - волк, коза и капуста. Крестьянин должен переправиться сам и перевезти волка, козу и капусту на другой берег. Однако, в лодку, кроме крестьянина, помещается либо только волк, либо коза, либо капуста. Оставлять же волка с козой или козу с капустой без присмотра нельзя - волк может съесть козу, а коза - капусту. Как должен вести себя крестьянин?

Задача очень проста, если учесть, что перевозить объекты можно не только "туда", но и "обратно". Второе соображение - существует единственное "безопасное" сочетание двух объектов из трех - волк и капуста.

Поэтому решение таково:


 1)перевезти козу туда;
 2)вернуться обратно;
 3)перевезти капусту туда;
 4)перевезти козу обратно;
 5)перевезти волка туда;
 6)вернуться обратно;
 7)перевезти козу туда;

Шаги 3) и 5) можно поменять местами.

2. Автоматическое устройство имеет 2 кнопки и экран. При включении на экране загорается число 0. При нажатии на первую кнопку число на экране удваивается (вместо х появляется 2х), при нажатии на вторую число увеличивается на 1 (вместо х появляется х+1). Как надо нажимать кнопки, чтобы на экране появилось:
а) число 5;
б) число 99;
в) число 99, если разрешается нажимать на кнопки не более 10 раз.

а)-б) Простейший порядок действий таков:
Если а - искомое число, х - текущее число на экране, (1),(2) - кнопки умножения на 2 и инкремента соответственно, то


   нажать (2)
   пока х*2<=a, нажимать (1)
   пока х<a, нажимать (2)

в) Попробуем найти более оптимальный алгоритм. Обозначения те же. N - число нажатий кнопок.


   N:=0
   Пока a>1, {начало цикла}
    Если a нечетное, то a:=(а-1)/2; n:=n+2;
    Иначе a=а/2; n:=n+1;
   {конец цикла}
   N:=N+1; {Переход от 1 к 0}

Для числа 99 алгоритм работает так:


   A  99 49 24 12 6 3 1 0
   N  0  2  4  5  6 7 9 10

То есть, требуется ровно 10 нажатий, а именно


   Кнопка     (2) (1) (2) (1) (1) (1) (1) (2) (1) (2)
   Результат  1   2   3   6   12  24  48  49  98  99

 Перенесено в раздел алгоритмов

20.04.2009, 19:46 [12818 просмотров]


теги: числа алгоритм

К этой статье пока нет комментариев, Ваш будет первым