ПОМОГИТЕ ПОЖАЛУЙСТА С ИНФОРМАТИКОЙ. PASCAL ABC. 25 БАЛЛОВ БЛОХА И КУБ. Блоха находится в вершине куба. За один прыжок она может переместиться в любую соседнюю вершину. Сколькими различными путями она ровно за N прыжков может ок...

ПОМОГИТЕ ПОЖАЛУЙСТА С ИНФОРМАТИКОЙ. PASCAL ABC. 25 БАЛЛОВ БЛОХА И КУБ. Блоха находится в вершине куба. За один прыжок она может переместиться в любую соседнюю вершину. Сколькими различными путями она ровно за N прыжков может оказаться в противоположной вершине? нужно написать программу для pascal abc!!!
Гость
Ответ(ы) на вопрос:
Гость
Представим куб в виде графа его каркаса. Пронумеруем все вершины куба цифрами от 1 до 8. Задача сводится к обычному обходу в ширину. Для четных N ответ будет 0, т.к. нельзя дойти на противоположную вершину за четное кол-во шагов. Ответ будет расти в геометрической прогрессии в зависимости от N. Программа: const   m: array[1..8, 1..8] of byte =   ((0, 1, 1, 1, 0, 0, 0, 0),   (1, 0, 0, 0, 1, 0, 1, 0),   (1, 0, 0, 0, 1, 1, 0, 0),   (1, 0, 0, 0, 0, 1, 1, 0),   (0, 1, 1, 0, 0, 0, 0, 1),   (0, 0, 1, 1, 0, 0, 0, 1),   (0, 1, 0, 1, 0, 0, 0, 1),   (0, 0, 0, 0, 1, 1, 1, 0));    var   n, i, j, k: integer;   a: array[0..100, 1..8] of int64; begin   read(n);   a[0, 1] := 1;   for k := 1 to n do     for i := 1 to 8 do       for j := 1 to 8 do         if m[i, j] = 1 then           a[k, i] := a[k, i] + a[k - 1, j];   write(a[n, 8]); end.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы