Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 5.00
F1ok
0 / 0 / 0
Регистрация: 02.12.2010
Сообщений: 6
#1

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

29.05.2011, 22:03. Просмотров 2467. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2011, 22:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Маршруты Гамильтона (C++):

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

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

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

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

Реализовать поиск в массиве объектов пользовательского типа (структура "Маршруты") - C++
Здравствуйте, нужна помощь, нужно доработать код, но не совсем понимаю как Вот код (что именно нужно доработать ниже) #include...

Для заданной вершины p найти маршруты в другие города, хотя бы один маршрут для каждого города - C++
Добрый день мои дорогие и многоуважаемые форумчане. Прошу вашей помощи: Вот дали задание в университете: Для заданной вершины p найти...

1
mute
20 / 20 / 5
Регистрация: 26.11.2012
Сообщений: 162
Записей в блоге: 2
05.06.2013, 16:29 #2
Переведите на паскаль плиииззз!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2013, 16:29
Привет! Вот еще темы с ответами:

Маршруты Гамильтона - Matlab
Ребят всем привет,очень надеюсь на вашу помощь,будьте добры помогите с этой прогой,???

Система уравнений Гамильтона - Методы оптимизации
Определить систему уравнений Гамильтона, если объект управления: \left\{\begin{matrix}dx1/dt=x\\ dx2/dt=u\end{matrix}\right. а...

Составить функцию Гамильтона и уравнения - Механика
Помогите с заданием... Составить функцию Гамильтона и уравнения Гамильтона для механической системы: Сферический маятник длинны l и...

Найти вершины которые образуют цикл Гамильтона - Prolog
помогите пожалуйста в прологе вобще ноль, после с++ его понять тяжко


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.