|
|||
Выбор модулей
2N2+1<= M N = sqrt((M-1)/2) m1 = 10^6 m2 = 10^6 n = 20 M = (10^6)^20 = 10^120 Пример оценки порядка дроби Фарея результата суммирования k дробей Сложение двух дробей C = A1/B1 + A2/B2 = (A1B2+A2B1)/(B1B2) |A1|<=N, |A2|<=N, |B1|<=N, |B2|<=N Числитель C <= 2N2, а знаменатель - N2 Сложение трёх дробей C = A1/B1 + A2/B2 + A3/B3 = (A1B2 B3+A2B1 B3+ A3B1 B2)/(B1B2 B3) Числитель C <= 3N3, а знаменатель - N3 Сложение k дробей Числитель C <= kNk, а знаменатель - Nk 0,123 = 123 ∙ 10-3
1. Параметры модулярной системы счисления p1 = 2, p2 = 3, p3 = 5 kf = 2 nf = 3 2. Преобразование в модулярную систему счисления А1 = К1 ∙ 10t1 (1) А2 = К2 ∙ 10t2
А1 = 1 ∙ 101 А2 = 2 ∙ 102 К1 = (1,1,1) К2 = (0,2,2) А1 = [(1,1,1), 1] А2 = [(0,2,2), 2] 3. Рассмотрим их умножение А3 = А1∙ А2 = К1 ∙ К2 ∙ 10t1+t2 = [(0,2,2), 3] 4. Рассмотрим сложение А4 =К1 ∙ 10t1 + К2 ∙ 10t2 = Пусть t1<t2, тогда А4 = 10t1 ∙ (К1 + К2 ∙ 10t2-t1) = А4 = [(1 + 0∙101, 1 + 2∙101, 1 + 2∙101), 1] = [(1,21,21),1] = [(1,0,1),1] 5. Рассмотрим вычитание А5 =К1 ∙ 10t1 - К2 ∙ 10t2 = Пусть t1<t2, тогда А5 = 10t1 ∙ (К1 - К2 ∙ 10t2-t1) = А5 = [(1 - 0∙101, 1 - 2∙101, 1 - 2∙101), 1] = = [(1,-19,-19),1] = [(1,2,1),1]
6 Обратное преобразование А3 = [(0,2,2),3] Р = 2 ∙ 3 ∙ 5 = 30 Определяем базисы: Р/ p1 = 15, m1 = 15-1 mod p1 = 1 Р/ p2 = 10, m2 = 10-1 mod p2 = 1 Р/ p3 = 6, m3 = 6-1 mod p3 = 1 B1 = 15, B2 = 10, B3 = 6 B1 = (1,0,0); B2 = (0,1,0); B3 = (0,0,1) К 3 = 0∙15+2∙10+2∙6 = 32 mod 30 = 2 А3 = 2∙103. Преобразуем А4 = [(1,0,1),1] K4 = 1∙15+0∙10+1∙6 = 21 mod 30 = 21 А3 = 21∙101. Преобразуем А5 = [(1,2,1),1] K5 = 1∙15 + 2∙10 + 1∙6 = 41 mod 30 = 11 А5 = 11∙101, но точный результат (-19) ∙101 Псевдопереполнение! Рассмотрим следующий пример: А6 = 1 ∙ 100 - 5 ∙ 100 = -4∙ 100 А6 = [(1, 1, 1), 0] - [(1, 2, 0), 0] = [(0, 2, 1), 0] K6 = 0∙15 + 2∙10 + 1∙6 = 26 mod 30 = 26 = [0, 14] для полож. Чисел
= [15,30] для отрицат чисел 26 соответствует отрицательному числу, которое определяется по формуле –(Р-26) = -4
Выбор модулей Утвержение. Для того чтобы не было псевдопереполнения порядок дробей Фарея результата не должен превосходить Р/2.
r = 10 – 10 цифр [-9,-8,…,0,…9] – 19 цифр xx [99 99] 99 = -9*101 + (-9) = -90 – 9 = -99 99+99+1 = 199 чисел В двоичной системе счисления r^2 19^2 = 361 (01) = (19) = 1*100-9 Рассмотрим пример сложения двух чисел 3645 и 1456 при . Избыточная система счисления с цифрами от -6 до 6. с = [ 0 1 1 1] u = [ 4 0 1 1] 3 2 1 0 3 6 4 5 (x) + 1 4 5 6 (y) 4 0 1 1 (u) S0=u0 S1= u1 + c0 s2=u2 + c1 s3 = u3 + c2
|
|||
|