Example #1
0
        /// <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);
        }
Example #2
0
 /// <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));
 }