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

GenerateChain() приватный Метод

The generate chain.
private GenerateChain ( Alphabet alphabet, int i, int length ) : Chain
alphabet Alphabet /// Generated sequence alphabet. ///
i int /// The i. ///
length int /// Generated sequence length. ///
Результат LibiadaCore.Core.Chain
        private Chain GenerateChain(Alphabet alphabet, int i, int length)
        {
            // next sequence
            var chain = new Chain(length);

            // Переменная для хранения остатка от деления на основание системы счисления (Мощность алфавита)
            int temp = i;

            // index of currently generated sequence
            int index = 0;

            // cycle through elements
            for (int j = length - 1; j >= 0; j--)
            {
                var element = (int)(temp / Math.Pow(alphabet.Cardinality, j));
                chain.Set(alphabet[element], index);
                temp = (int)(temp % Math.Pow(alphabet.Cardinality, j));
                index++;
            }

            return chain;
        }