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

Маршруты Гамильтона

29.05.2011, 22:03. Показов 4503. Ответов 1
Метки нет (Все метки)

Задание:Написать программу, реализующую алгоритм метода перестановки по маршрутам для преобразования исходного сообщения.

У самого не выходит. Нашёл в нете код, но он не работает, может кто помочь подкорректировать его? И если вдруг у кого есть ссылки на рабочий, был бы очень благодарен

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
int[] dop, x;  //dop[v] - метка включения в маршрут, x[n] - последовательность вершин образующих маршрут
        int v0;        //произвольная вершина графа, которая послужит началом маршрута
 
        private void gamiltCycle()
        {
            dop = new int[n];
            x = new int[n];
            initGraph();
            textBox4.Clear();
 
            for (int i = 0; i < n; i++) dop[i] = 1;  //все вершины не включены в маршрут
 
            v0 = Convert.ToInt32(textBox5.Text) - 1; //произвольная вершина графа, которая послужит началом маршрута
 
            if (v0 < 0 || v0 >= n)
                return;
 
            x[0] = v0;
            dop[v0] = 0;
            gamilt(1);
        }//gamiltCycle()
 
        private void gamilt(int k)
        {
            for (int y = 0; y < n; y++)             //идем по смежным вершинам
            {
                if (graph[x[k - 1], y] != 0)
                {
                    if ((k==n)&&(y == v0))          
                    {
                        for (int j = 0; j < x.Length; j++)
                        {
                            textBox4.Text += "v" + (x[j]+1) + ", ";
                        }
                        textBox4.Text += "v" + (v0+1) + "\r\n";
                    }
                    else                           //если текущая вершина y не замыкает маршрут до цикла Гамильтона
                    {
                        if (dop[y] == 1)           //если y не включена в маршрут
                        {
                            x[k] = y;
                            dop[y] = 0;            //включаем y в маршрут
                            gamilt(k + 1);
                            dop[y] = 1;
                        }
                    }
                }//if
 
            }//for
 
        }//gamilt()
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.05.2011, 22:03
Ответы с готовыми решениями:

Структура "Маршруты", найти маршруты начинающиеся или оканчивающиеся в заданном пункте
Здравствуйте. Дано такое задание: &quot;Написать программу, отладить ее, протестировать. При...

Шифр гронсфельда + маршрут Гамильтона
Нужна программа на си++. Маршрут 2. Нужно сделать так чтобы можно было вести любой алфавит.

Найти Гамильтона путь по матрице смежности
Здраствуйте! у меня в задаче граф задан матрицей смежности, в программе ищет гамильтона цикл...

Debug assertion failed в коде шифра Гамильтона
Microsoft Visual C++ Debug library // Hamilton3.cpp: определяет точку входа для консольного...

1
20 / 20 / 11
Регистрация: 26.11.2012
Сообщений: 164
Записей в блоге: 2
05.06.2013, 16:29 2
Переведите на паскаль плиииззз!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.06.2013, 16:29
Помогаю со студенческими работами здесь

Найти всевозможные маршруты автобусов
Имеется n городов пронумерованных с 1 до n и m соединяющих дорог. Найти всевозможные маршруты...

Задача про автобусные маршруты
Помогите решить задачу. На Новом проспекте для разгрузки было решено пустить два новых...

Простейшие классы и объекты: автобусы, маршруты
Bus: Фамилия и инициалы водителя, Номер автобуса, Номер маршрута, Марка, Год начала эксплуатации,...

Класс "Маршруты", вывод информации о маршрутах с заданными свойствами
Вариант 11 1. Определить класс с именем MARSH, содержащий следующие поля: название начального...


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

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

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