0 / 0 / 0
Регистрация: 06.10.2017
Сообщений: 107
1

Алгоритм флойда

21.11.2019, 01:27. Показов 1758. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствйте у меня есть беда. Есть вот такой код по вычеслению кратчайших путей и запоминание вершин в matrixP
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 public void AlgorithmFloida(int n, int[,] matrixA, int[,] matrixC, int[,] matrixP)
        {
            FillMatrix(matrixA, matrixC, n);
            for (int k = 0; k < n; k++)
            {
                for (int i = 0; i < n; i++)
                {
                    for (int j = 0; j < n; j++)
                    {
                        if ((matrixC[i, k] + matrixC[k, j]) < matrixC[i, j])
                        {
                            matrixC[i, j] = matrixC[i, k] + matrixC[k, j];
                             matrixP[i, j] = k + 1;
                                 
                        }
                    }
                }
            }
        }
Как я могу востановить путь указав от какой вершины до какой. например от 1-2
Вот как я пытался
C#
1
2
3
4
5
6
7
8
9
10
            int k;
            k = matrixP[i, j];
         
            if (k == 0)
            {
                return;
            }
            CalculatePath(i, k--);
            listOfVertrex.Add(k);
            CalculatePath(k--, j);
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.11.2019, 01:27
Ответы с готовыми решениями:

Алгоритм Флойда
Добрый день , помогите разобраться с алгоритмом работает частично , не все пути рассчитывает...

Реализовать алгоритм Флойда-Уоршалла
Здравствуйте. Я понимаю, что уже неоднократно разбирался алгоритм Флойда-Уоршалла, но у меня всё...

Правильный ли алгоритм Флойда в следующем примере
///&lt;$50 summary&gt; ///MICROSOFT STUDIO LIVE.com =&gt; Алгоритм Флойда ///&lt;!summary $50&gt; using...

Вывести алгоритм флойда с выводом на печать кратчайших путей
Вообщем нужно на си-шарп вывести алгоритм флойда с выводом на печать кратчайших путей , а матрица...

2
3560 / 2501 / 1174
Регистрация: 14.08.2016
Сообщений: 8,206
21.11.2019, 02:01 2
showtime200, круто, мАлАдЭз!, а про содержимое
Цитата Сообщение от showtime200 Посмотреть сообщение
CalculatePath
нам предстоит догадаться?(подсказка, а на кой икс+игрек+что-то из высшей математики, нам это надо?)
0
0 / 0 / 0
Регистрация: 06.10.2017
Сообщений: 107
21.11.2019, 02:06  [ТС] 3
Есть матрица MatrixC которую я заполнил с формы своей, и потом в ней пересчитывал вес. MatrixP хранит веришины где произошло изменения на k итерации
А тут я пытаюсь рекурсивно востановить путь

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
private void CalculatePath(int i,int j)
        {
            int k;
            k = matrixP[i, j];
         
            if (k == 0)
            {
                return;
            }
            CalculatePath(i, k--);
            listOfVertrex.Add(k);
            CalculatePath(k--, j);
        }
но из--за того что я присваивал k+1
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public void AlgorithmFloida(int n, int[,] matrixA, int[,] matrixC, int[,] matrixP)
        {
            FillMatrix(matrixA, matrixC, n);
            for (int k = 0; k < n; k++)
            {
                for (int i = 0; i < n; i++)
                {
                    for (int j = 0; j < n; j++)
                    {
                        if ((matrixC[i, k] + matrixC[k, j]) < matrixC[i, j])
                        {
                            matrixC[i, j] = matrixC[i, k] + matrixC[k, j];
                            matrixP[i, j] = k + 1;//Вот тут присваил на k+1 
                                 
                        }
                    }
                }
            }
        }
0
21.11.2019, 02:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.11.2019, 02:06
Помогаю со студенческими работами здесь

Алгоритм флойда для поиска кратчайших путей в графе
алгоритм флойда для поиска кратчайших путей в графе. Вывожу длину путей между вершинами, не могу...

Построение кратчайших путей между всеми парами вершин графа. Алгоритм Флойда
Взялся за свой курсовик. Задача такая: Реализовать алгоритм Флойда для построения кратчайших путей...

Поиск вершины в графе по алгоритму Флойда
Добрый час суток! Есть такая задача : Написать программу в которой будет выполняться алгоритм...

Вывести элементы, присутствующие в обоих массивах А и В. Алгоритм сортировки - подсчетом, алгоритм поиска - двоичный
Вывести элементы, присутствующие в обоих массивах А и В. Алгоритм сортировки - подсчетом, алгоритм...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru