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);
}