Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2010, 16:13   #1
Pti44ka
Пользователь
 
Аватар для Pti44ka
 
Регистрация: 02.09.2009
Сообщений: 56
По умолчанию Нахождение хроматического числа

Следующий код находит хроматическое число. Хроматическое число-минимальное число цветов в который можно окрасить граф) У меня уже есть код, но я до конца не могу понять, как он работает. Подскажите, пожалуйста.
Код:
class CalcHromeDigit
    {
        int HROME_COUNT_DIGIT = 0;
        public int CalcHrome(int CONNECT_TYPE, int VERTEX_COUNT, int[] GRAPH_COLORS)
        {
            if (CONNECT_TYPE == 1)
            {
                return VERTEX_COUNT;
            }
            else
            {
                HROME_COUNT_DIGIT = 0;
                int[] TEMP_ARRAY =  new int[20];
                Array.Clear(TEMP_ARRAY,0,20);
                for (int u = 0; u < VERTEX_COUNT; u++)
                {
                    bool TWISE_DIGIT_EXIST = false;
                    for (int o = 0; o < 20; o++)
                    {
                        if (TEMP_ARRAY[o] == GRAPH_COLORS[u])
                        {if (TEMP_ARRAY[o] == GRAPH_COLORS[u])
                            TWISE_DIGIT_EXIST = true;
                            break;
                        }
                    }
                    if (!TWISE_DIGIT_EXIST)
                    {
                        TEMP_ARRAY[HROME_COUNT_DIGIT] = GRAPH_COLORS[u];
                        HROME_COUNT_DIGIT++;
                        
                    }
                }
                return HROME_COUNT_DIGIT;
            }
        }
    }
}
CONNECT_TYPE - это переменная, которая отвечает за тип графа- связный он или нет. Если граф связный, то возвращаем количество вершин. А если не связный, то выполняется все, что после else.

if (TEMP_ARRAY[o] == GRAPH_COLORS[u]) - вот эту строку не могу понять совсем. Что она значит?

Массив TEMP_ARRAY состоит из 20 элементов, которые проинициализированы все нулями. Вот в этой строке инициализация происходит Аrray.Clear(TEMP_ARRAY,0,20); на сколько я понимаю!
Сложно даже понять, что значит переменная TWISE_DIGIT_EXIST. Помогите, пожалуйста, понять алгоритм. Понимаю, что он сложный, сама мучаюсь уже 3 день, но может есть кто-то опытный, кто сможет подсказать?
Pti44ka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нахождение наибольшего числа из промежутка BaronVik Паскаль, Turbo Pascal, PascalABC.NET 4 21.04.2010 16:36
Pascal нахождение точного значения числа Зорянка Помощь студентам 6 01.07.2009 13:47
работа с массивами в С++ (нахождение мин и макс числа) Lorden Помощь студентам 10 29.01.2009 21:42