From 02cd8133fb7209fc5bd15e81ec1ce3ea9736c6df Mon Sep 17 00:00:00 2001 From: Andrey Date: Tue, 30 Oct 2018 18:45:30 +0300 Subject: [PATCH] list version --- predprs/App.config | 18 +++++++++- predprs/Program.cs | 55 +++++++++++++++++++++++++++--- predprs/packages.config | 51 ++++++++++++++++++++++++++++ predprs/predprs.csproj | 74 +++++++++++++++++++++++++++++++++++++++-- 4 files changed, 189 insertions(+), 9 deletions(-) create mode 100644 predprs/packages.config diff --git a/predprs/App.config b/predprs/App.config index 731f6de..daf6772 100644 --- a/predprs/App.config +++ b/predprs/App.config @@ -1,6 +1,22 @@ - + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/predprs/Program.cs b/predprs/Program.cs index 3f80c4a..2a2cc95 100644 --- a/predprs/Program.cs +++ b/predprs/Program.cs @@ -49,22 +49,52 @@ namespace predprs //Permutations variations = new Permutations(data, GenerateOption.WithRepetition); double result = 0, best = 0; - string bestStr = string.Empty; + // string bestStr = string.Empty; Stopwatch sw = new Stopwatch(); sw.Start(); List resus = new List(); + List bestResult = new List(); + Results str = new Results(); + str.res = 0; + str.bestSt = string.Empty; + foreach (IList v in variations) { if (v[0] + v[1] + v[2] + v[3] + v[4] == 10) { result = matrix[v[0], 0] + matrix[v[1], 1] + matrix[v[2], 2] + matrix[v[3], 3] + matrix[v[4], 4]; - if (result > best) + if (result > str.res) { - best = result; - bestStr = string.Format("[{0} {1} {2} {3} {4}]", v[0], v[1], v[2], v[3], v[4]); + // на всякий случай поля объекта делую нулевыми + str.res = 0; + str.bestSt = string.Empty; + + + bestResult.Clear(); // отчистка листа при нахождении большего результата + + //запись в поля объекта данных + str.res = result; + str.bestSt = string.Format("[{0} {1} {2} {3} {4}]", v[0], v[1], v[2], v[3], v[4]); + bestResult.Add(str); //добавление объекта в лист + + //best = result; + //bestStr = string.Format("[{0} {1} {2} {3} {4}]", v[0], v[1], v[2], v[3], v[4]); + + } + // если результаты совпали но строки отличаются (что-то тут странное происходит) + else if (result == str.res && str.bestSt != string.Format("[{0} {1} {2} {3} {4}]", v[0], v[1], v[2], v[3], v[4])) + { + // на всякий случай поля объекта делую нулевыми + str.res = 0; + str.bestSt = string.Empty; + + //запись в поля объекта данных + str.res = result; + str.bestSt = string.Format("[{0} {1} {2} {3} {4}]", v[0], v[1], v[2], v[3], v[4]); + bestResult.Add(str);//добавление объекта в лист } bool tr = false; @@ -82,8 +112,23 @@ namespace predprs } foreach (string s in resus) WriteLine(s); sw.Stop(); - WriteLine("Наибольшая прибыль при {0} со значением {1}\n{2} ms", bestStr, best, sw.ElapsedMilliseconds); + // вывод листа + WriteLine(bestResult.Count); + foreach (Results strr in bestResult) + { + + WriteLine("Наибольшая прибыль при {0} со значением {1}", strr.bestSt, strr.res); + } + + + WriteLine("{0} ms", sw.ElapsedMilliseconds); ReadKey(); } + + class Results + { + public double res { get; set; } + public string bestSt { get; set; } + } } } diff --git a/predprs/packages.config b/predprs/packages.config new file mode 100644 index 0000000..40d60f8 --- /dev/null +++ b/predprs/packages.config @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/predprs/predprs.csproj b/predprs/predprs.csproj index f72e3b1..51ee349 100644 --- a/predprs/predprs.csproj +++ b/predprs/predprs.csproj @@ -33,16 +33,83 @@ 4 - - ..\..\..\vs\pacs\Combinatorics.1.1.0.19\lib\netstandard1.2\Combinatorics.dll + + ..\packages\Combinatorics.1.1.0.19\lib\netstandard1.2\Combinatorics.dll + True + + + ..\packages\Microsoft.Win32.Primitives.4.0.1\lib\net46\Microsoft.Win32.Primitives.dll + True + + ..\packages\System.AppContext.4.1.0\lib\net46\System.AppContext.dll + True + + + + ..\packages\System.Console.4.0.0\lib\net46\System.Console.dll + True + + + ..\packages\System.Diagnostics.DiagnosticSource.4.0.0\lib\net46\System.Diagnostics.DiagnosticSource.dll + True + + + ..\packages\System.Globalization.Calendars.4.0.1\lib\net46\System.Globalization.Calendars.dll + True + + + ..\packages\System.IO.Compression.4.1.0\lib\net46\System.IO.Compression.dll + True + + + + ..\packages\System.IO.Compression.ZipFile.4.0.1\lib\net46\System.IO.Compression.ZipFile.dll + True + + + ..\packages\System.IO.FileSystem.4.0.1\lib\net46\System.IO.FileSystem.dll + True + + + ..\packages\System.IO.FileSystem.Primitives.4.0.1\lib\net46\System.IO.FileSystem.Primitives.dll + True + + + ..\packages\System.Net.Http.4.1.0\lib\net46\System.Net.Http.dll + True + + + ..\packages\System.Net.Sockets.4.1.0\lib\net46\System.Net.Sockets.dll + True + + + + ..\packages\System.Runtime.InteropServices.RuntimeInformation.4.0.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll + True + + + ..\packages\System.Security.Cryptography.Algorithms.4.2.0\lib\net461\System.Security.Cryptography.Algorithms.dll + True + + + ..\packages\System.Security.Cryptography.Encoding.4.0.0\lib\net46\System.Security.Cryptography.Encoding.dll + True + + + ..\packages\System.Security.Cryptography.Primitives.4.0.0\lib\net46\System.Security.Cryptography.Primitives.dll + True + + + ..\packages\System.Security.Cryptography.X509Certificates.4.1.0\lib\net461\System.Security.Cryptography.X509Certificates.dll + True + - @@ -51,6 +118,7 @@ + \ No newline at end of file