static void Main(string[] args) { int arraysNum = 30; int arraySize = 5000; int maxValue = 500; int tableSize = 2000; int[][] arrays = ArrayGenerator.GenerateArrays(arraysNum, arraySize, maxValue); double[] constans = new[] { 0.6180339887, 0.33333333, 0.5, 0.125, 0.9131654, 1 }; Console.WriteLine( $"Arrays number = {arraysNum}, each array size = {arraySize},\n" + $"maximal value = {maxValue}, table size = {tableSize}.\n" ); for (int i = 0; i < constans.Length; i++) { if (i == 0) { Console.WriteLine("--------------\n\nStandart constant is ((Math.Sqrt(5) - 1) / 2)"); } Console.WriteLine( $"Test for A = {constans[i]}\n" + $" In average chains have maximum length of " + $"{GetAverageMaxChainLength(constans[i], tableSize, arrays)}\n" ); if (i == 0) { Console.WriteLine("--------------\n\nSelecting better constant:\n"); } } Console.WriteLine("--------------\n"); double calculatedA = GetTheBestConst(tableSize, arrays, 10); Console.WriteLine( $"Calculated constant is {calculatedA}\n" + $"In average chains with that A have maximum length " + $"of {GetAverageMaxChainLength(calculatedA, tableSize, arrays)}" ); Console.WriteLine("\n--------------"); Console.ReadKey(); }