Example #1
0
        public bool CheckDigit(Digit digit, int value)
        {
            if (value >= Masks.Count)
                throw new ArgumentOutOfRangeException();

            return (Masks[value] | digit.Mask) == Masks[value];
        }
Example #2
0
        public List<int> GetPossibleDigits(Digit digit)
        {
            var result = new List<int>();
            for (var i = 0; i < Masks.Count; ++i)
            {
                if ((Masks[i] | digit.Mask) == Masks[i])
                    result.Add(i);
            }

            return result;
        }
Example #3
0
        public List <int> GetPossibleDigits(Digit digit)
        {
            var result = new List <int>();

            for (var i = 0; i < Masks.Count; ++i)
            {
                if ((Masks[i] | digit.Mask) == Masks[i])
                {
                    result.Add(i);
                }
            }

            return(result);
        }
Example #4
0
        public List<List<Digit>> AddNoise(List<List<Digit>> numbers)
        {
            foreach (var number in numbers)
            {
                var index = 0;
                if (number.Count != _noises.Count)
                {
                    index = _noises.Count - number.Count;
                }

                for (var i = 0; i < number.Count; ++i)
                {
                    number[i] = new Digit(number[i].Mask & _noises[index + i]);
                }
            }

            return numbers;
        }