Меньшим количеством
Меньшим количеством цветов граф правильно раскрасить нельзя из-за наличия треугольников. Рядом с “кружками” - вершинами графа - указаны номера цветов.
Метод получения правильной раскраски. Идея достаточно проста. Закрашиваем очередную вершину в минимально возможный цвет. Введем следующие структуры данных.
Const Nmax=100; {максимальное количество вершин графа}
Type V=0..Nmax;
Ss=Set of V;
My_array=array[1..Nmax] of V;
Var Gr:My_array;{Gr - каждой вершине графа определяется номер цвета}
Для примера, приведенного выше, массив Gr имеет вид: Gr[1]=Gr[3]=Gr[5]=1; Gr[2]=Gr[4]=Gr[7]=2; Gr[6]=3.
Фрагмент основной логики.
....
<формирование описания графа>;
for i:=1 to N do Gr[i]:=Color(i,0);
<вывод решения>;
Поиск цвета раскраски для одной вершины можно реализовать с помощью следующей функции:
function Color(i,t:V):integer;{i - номер окрашиваемой вершины, t - номер цвета, с которого следует искать раскраску данной вершины}
{A - матрица смежности,
Индекс
Элементарные функции
Линейные уравнения
Нелинейные уравнения
Случайные числа