예제 #1
0
 // Метод для добавления класс в набор смежных классов
 public void     AddResidueClass(ResidueClass residueClass)
 {
     this._listResidueClass.Add(residueClass);
 }
예제 #2
0
        // Метод генерации всех масок смежных классов по образцу маски. Функция является рекурсией.
        // Параметры: 
        // mask - текущая маска для дальнейшей генерации. Заменяются только элементы = 0.
        // pos  - текущая позиция символа дла замены
        private void    GenerateMasksResidueClass(sbyte[] mask, byte pos)
        {
            // Пока (текущий символ для замены не требует генерации) или
            //      (не достигнута граница маски)
            // то перемещаемся на следующий символ для генерации
            while ((mask[pos] < 0) || (pos < _numberRegister))
                pos++;

            // Генерация сиволов в маске
            for (sbyte i = 0; i < 1; i++)
            {
                mask[pos] = i;

                // Если не достигли конца маски, то рекурсией изменяем далее значение старшего элемента маски
                if (pos > 0)
                    GenerateMasksResidueClass(mask, (byte)(pos + 1));
                // Иначе - добавляем смежный класс с полученной маской
                else
                {
                    ResidueClass newResidueClass      = new ResidueClass();
                    newResidueClass._maskResidueClass = mask;
                    this.AddResidueClass(newResidueClass);
                }
            }
        }