/// <summary> /// Деление двух многомодульных чисел /// </summary> /// <param name="First">Первый операнд</param> /// <param name="Second">Второй операнд</param> /// <returns>Результат операции</returns> public static MMA operator /(MMA First, MMA Second) { if (First.Modules.Count != Second.Modules.Count) { throw new ArgumentException("Наборы модулей чисел не совпадают!"); } First.Sort(); Second.Sort(); MMA Result = new MMA(new List <Comparison.LinearComparison>()); for (int i = 0; i < First.Values.Count; i++) { if (First.Values[i].M != Second.Values[i].M) { throw new ArgumentException("Наборы модулей чисел не совпадают!"); } Result.AddModule(new Comparison.LinearComparison(First.Values[i].A / Second.Values[i].A, First.Values[i].M)); } return(Result); }
/// <summary> /// Определяет, совпадает ли данное число сдругим числом <see cref="MMA" /> /// </summary> /// <param name="other">Сравниваемое число класса <see cref="MMA" /></param> /// <returns>true - Совпадают. false - Что-то отличается</returns> protected bool Equals(MMA other) { return(Equals(Values, other.Values)); }