BuildingsIterator.ScramblingGenerator.Generate C# (CSharp) Метод

Generate() публичный Метод

Generates hashtable with all possible combinations as keys and characteristics list as values.
public Generate ( Alphabet alphabet, int length, List characteristic ) : ChainPicksWithCharacteristics
alphabet Alphabet /// Alphabet for generated sequences. ///
length int /// Length of generated sequences. ///
characteristic List /// Calculated characteristics. ///
Результат ChainPicksWithCharacteristics
        public ChainPicksWithCharacteristics Generate(Alphabet alphabet, int length, List<LinkedCharacteristic> characteristic)
        {
            var hashTable = new Hashtable();

            // По всем возможным цепочкам (Для оптимизации скорости генерируется цепочки с одинаковой первой буквой)
            for (int i = 0; i < Math.Pow(alphabet.Cardinality, length - 1); i++)
            {
                Chain chain = GenerateChain(alphabet, i, length);
                List<double> characteristics = CalculateCharacteristics(chain, characteristic);
                try
                {
                    hashTable.Add(ArrayExtensions.ToStringWithoutDelimiter(chain.Building), characteristics);
                }
                catch (Exception)
                {
                }
            }

            return new ChainPicksWithCharacteristics(hashTable, characteristic);
        }