
46. Функция Аккермана
Функция
Аккермана определяется рекурсивно для
неотрицательных целых чисел
и
следующим
образом:
Может
показаться неочевидным, что рекурсия
всегда заканчивается. Это следует из
того, что при рекурсивном вызове или
уменьшается значение
,
или значение
сохраняется,
но уменьшается значение
.
Это означает, что каждый раз
пара
уменьшается
с точки зрения лексикографического
порядка,
значит, значение
в
итоге достигнет нуля: для одного
значение
существует
конечное число возможных значений
(так
как первый вызов с данным
был
произведён с каким-то определённым
значением
,
а в дальнейшем, если значение
сохраняется,
значение
может
только уменьшаться), а количество
возможных значений
,
в свою очередь, тоже конечно. Однако,
при уменьшении
значение,
на которое увеличивается
,
неограничено и обычно очень велико.
Таблица значений
\ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47. Дискретные задачи на взвешивание и переливание
Задачи на взыешивание
а) 3 монеты — 1 взвешивание. Сравниваем произвольную пару монет. Если они имеют одинаковый вес, то третья монета фальшивая, в противном случае фальшивой является более легкая монета.
б) 4 монеты — 2 взвешивания. Можно взвесить сначала одну пару монет, а при необходимости — вторую. Можно положить на каждую чашечку по две монеты и повторить взвешивание для более легкой пары.
в) 5 монет — 2 взвешивания. Разложим монеты на три кучки: 2 + 2 + 1. Взвесим две первые кучки. Если их веса равны, то оставшаяся монета будет фальшивой. В противном случае повторим взвешивание для более легкой пары.
г) 6 монет — 2 взвешивания. Разложим монеты на три кучки: 2 + 2 + 2. Взвесим две первые кучки. Если их веса равны, то фальшивая монета в оставшейся кучке. В любом случае повторим взвешивание для более легкой кучки.
На переливание
1. Для разведения картофельного пюре быстрого приготовления "Зеленый великан" требуется 1 л воды. Как, имея два сосуда емкостью 5 и 9 литров, налить 1 литр воды из водопроводного крана?
2. Как с помощью 2-литровой и 5-литровой банок отмерить ровно 1 литр?
Можно
найти решение, если первым шагом заполнить
2-литровую банку. Правда, в решении больше
действий…
3. Как, имея пятилитровое ведро и девятилитровую банку, набрать из реки ровно три литра воды?
4. Для марш-броска по пустыне путешественнику необходимо иметь 4 литра воды. Больше он взять не может. На базе, где имеется источник воды, выдают только 5-литровые фляги, а также имеются 3-литровые банки. Как с помощью одной фляги и одной банки набрать 4 литра во флягу?
Если
начать с наполнения 5 литровой фляги,
то получится более короткое решение
(презентация, слайд 2).
5. Есть два кувшина емкостью 5 л и 9 л. Нужно набрать из источника 7 л воды, если можно пользоваться только кувшинами.
Решим
задачу, наполнив первым действием
5-литровый кувшин.
Решим
задачу иначе. Наполним первым действием
9-литровый кувшин.