public bool CheckDigit(Digit digit, int value) { if (value >= Masks.Count) throw new ArgumentOutOfRangeException(); return (Masks[value] | digit.Mask) == Masks[value]; }
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; }
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); }
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; }