Форум программистов, компьютерный форум CyberForum.ru

Задача коммивояжера, программа - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Нужны комментарии к коду хеш-таблицы http://www.cyberforum.ru/cpp-beginners/thread602303.html
//мэйн #include "stdafx.h" #include "Hash_Twin_Chain.h" #include <iostream> #include <ctime> struct AAA { int key; char *mas;
C++ построение графиков Разработать программу для построения графиков функции. Считать из файла, указанного пользователем значения абсциссы Х (не менее 20 значений), произвести сортировку Х по возрастанию, рассчитать для них значения ординаты У, записать результат вычисления в новый файл в формате: Х1 У1а У1в Х2 У2а У2в Вариант задается двухзначным числом, разряды которого представляют: старший (десятки) – номер... http://www.cyberforum.ru/cpp-beginners/thread602300.html
C++ Реализация алгоритма Бойера — Мура на
Помогите пожалуйста сделать по заданию • Входные данные – текстовый файл. • Выходные данные – текстовый файл, содержащий найденные слова с указанием позиции во входном файле (номер строки, позиция в строке, количество вхождений слова в файле). Вариант задания А1 А2 3 9
C++ Переход на следующую строку, первое слово строки
Есть текстовый файл состоящий из строк (Максимальная длина - 256). Необходимо считывать первое слово строки, и если оно равно какому-то значению (пусть будет const), то продолжать обрабатывать строку. Если не равно, то перейти на следующую строку и опять смотреть первое слово. Как это можно реализовать? Делал так: while (fscanf(fp, "%s", &s)!=EOF&&flag==0){ if (!strcmp(s, "const")){...
C++ Нахождение целого числа http://www.cyberforum.ru/cpp-beginners/thread602245.html
Среди x1-x100 найти ближайшее к любому целому #include <iostream> #include <cmath> using namespace std; int main() { const int n = 100; int i; int k = 0;
C++ Анализ текста. Закон Ципфа. Консольные приложения C++. Borland Builder 6 Доброго времени суток. У меня, в общем, такая задача - реализовать программу которая подтверждает закон Ципфа. Он гласит, что в естественном языке (на котором общаются люди) второе по частоте применения в тексте или речи - встречается в два раза чаще чем первое, третье слово - в три раза чаще, и так далее. Алгоритм я представляю себе следующим: - создать char массив - создать алгоритм проверки... подробнее

Показать сообщение отдельно
Фаягуль
Сообщений: n/a
10.06.2012, 20:47     Задача коммивояжера, программа
Здравствуйте! Нашла программу решения задачи коммивояжера методом полного перебора почему компилируется но выдает пустое консольное окно?( помогите пожалуйста!









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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
 
template <class data>
class MatrixBase
{
    typedef short int shint;
    typedef unsigned int uint;
    typedef std::vector <data> vectorT;
    typedef std::vector <vectorT> matrixT;
    typedef std::vector <shint> vectorIndexT;
    typedef std::pair <int, int> VerticesPair;
    typedef std::vector <VerticesPair> EdgesVector;
 
    public:
 
        // признаки данных
        data nullAttr, infinityAttr;
 
        // конструктор
        MatrixBase (uint c, data nil = 0, data inf = -1) : nullAttr(nil), infinityAttr(inf)
        {
            __matrix.resize(c);
            for (uint i = 0; i < c; i++) {
                __matrix[i].resize(c);
                for (uint j = 0; j < c; __matrix[i][j++] = infinityAttr);
            }
        }
        // перегрузка операторов для сохранения тождественности объекта и матрицы
        vectorT & operator [] (uint index) { return __matrix[index]; }
        matrixT & operator () () { return __matrix; }
}
// метод прямого перебора (грубой силы)
        vectorIndexT TSP_BruteForce (int start = -1)
        {
            // длина обхода
            data length = nullAttr;
            // вектор индексов перебора, результирующий вектор индексов
            vectorIndexT index (__matrix.size(), 0), out (__matrix.size(), 0);
            for (uint i = 0; i < index.size(); i++, index[i] = i);
            // сортировка для пермутаций
            sort (index.begin(), index.end());
            // ключ выбора начального элемента
            bool any = (start <= -1);
            do {
                if ((index[0] == (shint)start) || (any)) {
                    // контур непрерывен
                    bool solid = true;
                    // аккумулятор значения
                    data acc = __matrix[index[index.size()-1]][index[0]];
                    for (uint i = 0; i < index.size() - 1; i++) {
                        // буферная переменная
                        data buffer = __matrix[index[i]][index[i+1]];
                        // проверка на непрерывность контура
                        if ((acc == infinityAttr) || (buffer == infinityAttr)) {
                            // контур прервался
                            solid = false;
                            break;
                        }
                        acc += buffer;
                    }
                    // предварительная проверка контура
                    if ((solid) && ((length == nullAttr) || (acc < length))) {
                        // длина обхода
                        length = acc;
                        // перезапись результата
                        out = index;
                    }
                }
            }
            // производим пермутацию (перестановку)
            while (next_permutation(index.begin(), index.end()));
            return out;
        }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru