TOTAL писал(а):
Ха - ха - ха! При таком понимании задачи вот алгоритм:
Шаг i. Ставим
-ый кубик на
-ое место. И всё!
Безусловно, это алгоритм, несомненный алгоритм. Только вот для какой задачи?...
(вот ведь привереды) Ладно, тогда попробуем так.
По индукции: предположим (А), что утверждении (о конечности процедуры) верно для
кубика. Докажем, чтогда оно верно и для
кубиков.
Пусть начальная расстановка есть
, причём
(иначе утверждение доказано). Среди первых
кубиков есть кубик с номером
, номера же остальных кубиков лежат в диапазоне от
до
, причём номер
пропущен.
За конечное количество шагов произойдёт одно из двух.
(В) Будет сделана попытка переставить кубик с номером
, стоящий на
-ной позиции.
(С) Будет сделана попытка переставить кубик с номером
, находящийся на начальном участке. Это верно по следующим причинам. Временно пометим кубик с номером
из начального участка номером
. По предположению (А), рано или поздно начальный участок окажетса выстроен по ранжиру (так, что кубик с фактическим номером
jокажется в
-той позиции) -- если только перед этим не будет сделана попытка переставить кубик с номером
или с номером
. Но если последнего не произойдёт, то мы вынуждены будем переставить один из этих двух кубиков на следующем шаге.
Так вот. Если случится предположение (С), то игра на этом фактически закончится, т.к. дальше мы будем иметь дело уже с перестановкой только
кубика. Если же переставится последний кубик (предположение (В)), то она продолжится, но не слишком долго. Просто потому, что кубик, вытесненный или перемещённый с последней позиции, обратно вернуться уже не сможет. А значит, не более чем за
предыдущих циклов на последней позиции опять-таки окажется кубик с номером
.