Помогите срочно решить задачу на тему : динамическое программирование
Вот задача:
Дан фрагмент кубической кристаллической решетки с длиной ребра N. Очевидно, что кратчайший путь из одной вершины куба в противоположную, проложенный по ребрам решетки, имеет длину 3*N (на русинке приведен пример одного такого маршрута для N = 2). Требуется написать программу, определяющую количество таких маршрутов. Для N=2 количество маршрутов равно 90. N <= 100
:???:
Цитата:
Originally posted by Den_Bogd
Помогите написать программу. Я ее как бы решил, но у меня возникает проблема при увеличении диапазона и мои переменные не способны хранить такое большое число. Переменные описаны типом Real.
Вот задача:
Дан фрагмент кубической кристаллической решетки с длиной ребра N. Очевидно, что кратчайший путь из одной вершины куба в противоположную, проложенный по ребрам решетки, имеет длину 3*N (на русинке приведен пример одного такого маршрута для N = 2). Требуется написать программу, определяющую количество таких маршрутов. Для N=2 количество маршрутов равно 90. N <= 100
:???:
Помогите написать программу. Я ее как бы решил, но у меня возникает проблема при увеличении диапазона и мои переменные не способны хранить такое большое число. Переменные описаны типом Real.
Вот задача:
Дан фрагмент кубической кристаллической решетки с длиной ребра N. Очевидно, что кратчайший путь из одной вершины куба в противоположную, проложенный по ребрам решетки, имеет длину 3*N (на русинке приведен пример одного такого маршрута для N = 2). Требуется написать программу, определяющую количество таких маршрутов. Для N=2 количество маршрутов равно 90. N <= 100
:???:
Дай код пожалуйста, а там придумаем чтото. :)
Интересно в каком порядке Ты вершини проходил.
Цитата:
Originally posted by Rebbit
Дай код пожалуйста, а там придумаем чтото. :)
Интересно в каком порядке Ты вершини проходил.
Дай код пожалуйста, а там придумаем чтото. :)
Интересно в каком порядке Ты вершини проходил.
Количество кратчайших путей в кубе из1,1 это сумма количества кратчайших путей из всех предшествующих вершин, т.е. допустим массив квадратной матрици, в котором в ячейки 1,1 имеем число 1, а в последующих ячейках хранится информация о количества кратчайших путей из 1,1 в i,j и определяем : Mas[j,i] := mas[i-1,j] + mas[I,j-1] + mas[I,j]
Const
Max = 100;
Var
Mas : array [1..max,1..max] of real;
I,j,z : intreger;
N : integer;
Begin
Readln(n);
For z := 1 to n do
For I := 1 to n do
For j := 1 to n do
Mas[j,i] := mas[i-1,j] + mas[I,j-1] + mas[I,j];
Write(mas[I,j]);
End.