/// <summary> /// Method that find count of hamiltonian graphs /// and count of Ore graphs, Posha graphs and Chvatal graphs /// </summary> public static void GetConditionsStatistics() { try { Stopwatch stopWatch = new Stopwatch(); stopWatch.Start(); using (StreamWriter sw = new StreamWriter(@"D:\Shared Folder\conditions_statistics.txt")) { for (int i = 3; i <= 11; i++) { int ore_true = 0; int ore_false = 0; int posha_true = 0; int posha_false = 0; int chvatal_true = 0; int chvatal_false = 0; int hamiltonian_graph = 0; using (StreamReader sr = new StreamReader(@"D:\Shared Folder\Generated G6\graphs" + i + ".g6")) { string s; while ((s = sr.ReadLine()) != null) { int[,] matrix = Helper.DecodeGraph6(s); List <int> vector = GetVector(matrix); if (HamiltonianGraphsHelper.IsHamiltonianGraph(matrix)) { hamiltonian_graph++; } if (HamiltonianGraphsHelper.OreCondition(matrix)) { ore_true++; } else { ore_false++; } if (HamiltonianGraphsHelper.PoshaCondition(vector)) { posha_true++; } else { posha_false++; } if (HamiltonianGraphsHelper.ChvatalCondition(vector)) { chvatal_true++; } else { chvatal_false++; } } } sw.WriteLine("Количество {0}-вершинных гамильтоновых графов равно = {1}.", i, hamiltonian_graph); sw.WriteLine("Количество {0}-вершинных графов, удовлетворяющих условию Оре, равно = {1}.", i, ore_true); sw.WriteLine("Количество {0}-вершинных графов, не удовлетворяющих условию Оре, равно = {1}.\n", i, ore_false); sw.WriteLine("Количество {0}-вершинных графов, удовлетворяющих условию Поша, равно = {1}.", i, posha_true); sw.WriteLine("Количество {0}-вершинных графов, не удовлетворяющих условию Поша, равно = {1}.\n", i, posha_false); sw.WriteLine("Количество {0}-вершинных графов, удовлетворяющих условию Хватала, равно = {1}.", i, chvatal_true); sw.WriteLine("Количество {0}-вершинных графов, не удовлетворяющих условию Хватала, равно = {1}.\n", i, chvatal_false); } stopWatch.Stop(); TimeSpan ts = stopWatch.Elapsed; string elapsedTime = String.Format("{0:00} дней {1:00} час {2:00} минут {3:00}.{4:00} секунд", ts.Days, ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds / 10); sw.WriteLine("\nЗатраченное время: " + elapsedTime); } } catch (Exception e) { Console.Write("Файл не может быть открыт: "); Console.WriteLine(e.Message); } }