Коробейников А . Г . и др. –С. 2-17 — КиберПедия 

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

Коробейников А . Г . и др. –С. 2-17

2020-07-07 82
Коробейников А . Г . и др. –С. 2-17 0.00 из 5.00 0 оценок
Заказать работу

ПАМ

Толстиков А.В.

Лекция 3. Теория делимости целых чисел.

 

1. Делимость целых чисел. Теорема о делении с остатком.

2. Представление целого числа в g-ичной системе счисления.

3. Целочисленная арифметика многократной точности.

4. Наибольший общий делитель целых чисел и наименьшее общее кратное целых чисел. Алгоритм Евклида.

5. Цепные дроби и их свойства. Линейные диофантовы уравнения и их системы.

6. Простые и составные числа. Критерий простоты числа. Теорема Евклида. Неравенства Чебышева.

7. Основная теорема арифметики и следствия из нее.

Литература. Виноградов И.М. – С. 7-54;

                   Василенко О.Н. –С. 254- 273;

Коробейников А. Г. и др. –С. 2-17

Делимость целых чисел. Теорема о делении с остатком.

Определение 1. Говорят, что целое число a делит целое число b, если существует такое целое число с, что b = a с. При этом число a называется делителем числа b, число – счастным, число b называют также кратным числу a. Обозначаем a | b.

Теорема 1. Для любых целых чисел a, b, с, d, e, f справедливы свойства:

10. a| a;

20. a |0;

30. 1| a;

40.  a | b и b | c Þ a | c;

50.  a | b и a | c Þ a |(b + c);

60.  a | b и a | c Þ a |(b - c);

70.  a | b и a |(b + ca | c;

80.  a | b и c | d Þ ac |(bd);

90.  a | b и a | c Þ a |(db + ec);

100. a | b и b | a Þ a = ± b;

110. a | b и b ¹ 0, Þ | a | £| b |;

120. a | b и | b | <| a |, Þ b = 0.

Доказательство. Докажем свойство 4, а остальные свойства предоставляем доказать самостоятельно. Пусть a | b и b | c. Тогда по определению делимости

b = a с и c = bd,

где с, d Î Z. Отсюда c = a (dc), где dc Î Z. Тогда по определению 1 a | c. ÿ

Теорема 2 (теорема о делении с остатком). Для любых целых чисел a, где b ¹ 0, существует такая единственная пара целых чисел q и r, что

b = aq + r,r < | b |.                                        (1)

Доказательство. Существование. Рассмотрим множество

M = { x = a - by | y Î Z, x ³ 0} Ì   Z.

Множество M не пусто; если a ³ 0, то число a = a - b ·0Î M; если a < 0, то число   x = a - | b | a Î M. Тогда множество M содержит минимальный элемент r,, а соответствующее ему число y обозначим через q. Тогда

r =  a – bq, a= bq + r, q и r Î Z, r ³ 0.

Покажем, что r < | b |. Допустим, что r ³ | b |. Отсюда

r - | b | ³ 0, r - | b |  = a – b (q ±1) Î Z,

и число r - | b |< r Î M. Получаем противоречие. Следовательно, числа q и r удовлетворяющие условиям теоремы 2 существуют.

Единственность. Допустим, что существует еще одна пара целых q и r чисел, удовлетворяющих условиям теоремы. Тогда имеем

b = aq + r,r < | b |;

b = aq 1+ r 1, 0£ r 1 < | b |.

Вычитая эти равенства и неравенства почленно, получаем

A (q - q 1)+ (r - r 1) = 0, -| b | < r - r 1 < | b |.                             (2)

Из равенства (2) по свойствам делимости следует, что b | (r - r 1). Так как | r - r 1| < | b |,

то по свойству 11 делимости получаем r - r 1 = 0, r = r 1. Тогда из равенства (2) находим A (q - q 1) = 0, q - q 1 = 0, q = q 1. Полученное противоречие доказывает единственность деления с остатком. ÿ

Замечания 1. Число r в равенстве (1) теоремы 2 называется остатком, число q неполным частным.

2. По теореме 2 любое целое число a представляется в одном и только одном виде: b = aq + 0, b = aq + 1 ,…, b = aq + (a -1);

 

End for

if c 0:= 1 then

for i = 1… n; (f, ci): = div (ai - bi + f, g); end for

else if c 0:= -1 then

for i = 1… n; (f, ci): = div (bi - ai + f, g); end for

end if;

Выход: .

При вычитании двух n -значных чисел требуется выполнить   n операций деления с остатком и 2 n операций вычитаний чисел величиной с цифру и n сравнений.

Пусть даны два целых числа

,

Перенос в другой разряд обозначаем через f (флаг переноса). Находим произведение чисел . Произведение чисел можно выполнять по формулам:

,                    (1)

 ,                   (2)

где при l <1 мы полагаем al = 0, bl = 0.

Алгоритм, реализуемый по формуле (1) напоминает «умножение столбиком», а по формуле (2) «умножение быстрым столбиком»

Алгоритм умножения неотрицательных целых чисел столбиком.

Вход: , ;

c = 0; f:=0;

for j = 1… m;

if bi > 0 then

for i = 1… n; (f, ci + j- 1): = div (ci + j- 1 + ai bj + f, g); end for

end if;

End for

Выход: .

При умножении n -значного числа на m -значное число по этому алгоритму требуется выполнить не более nm операций умножения, nm операций деления с остатком, 2 nm операций сложения.

Алгоритм умножения неотрицательных целых чисел быстрый столбик.

Вход: , ;

c = 0; f:=0;

for k = 1… n+m- 1;       

for i = 1… k;

   if n-i >0 and m-k + i > 0 then f:= f+ an-i · bm-k+i end if;

end for

(f, ck): = div (f, g);

End for

Выход: .

При умножении n -значного числа на m -значное число требуется выполнить nm операций умножения, n + m операций сложения и n + m операций деления с остатком.

В 1962 году студент МГУ, ныне профессор А.А.Карацуба предложил более быстрый способ умножения больших многозначных чисел. Предположим, что у нас имеется два 2 n -значных числа:

, .

Положим

,

где

, .

Тогда

. (3)

Таким образом, при умножении двух 2 n -значных чисел по формуле (3) нужно 3 умножения n -значных чисел, 4 сложения и 2 вычитания и 4 сдвига n-значных чисел. По формуле требуется 4 сложения и 3 сдвига. (4) требуется 4 умножения и 3 сдвига.

При больших n метод Карацубы становится более эффективным, чем «быстрый столбец».Если обозначить через T (n) число битовых операций для умножения двух n -разрядных чисел, то

T (2 n) = 3 T (n) + cn,                                      (4)

где c – константа. Используя эти соображения получим, что

.

Установлено, что существует метод умножения двух n -значных двоичных чисел, требующий не более O(n ·ln n · lnln n) двоичных операций.

Пусть дано целое число

иодноразрядное число b,b < g. Находим частное  и остаток r.

Алгоритм деления неотрицательного целого числа на однозначное число.

Вход: , ;

r = 0;  

for i = 1… n;       

(ci, r): = div (rg+ai, b);

End for

Выход: .

Рассмотрим алгоритм деления целых чисел в общем случае. Задача деления целых чисел упирается в задачу подбора очередной цифры неполного частного в следующей ситуации. Пусть , , причем bn >0, a / b < g. Нам нужно найти частное от деления a на b:

.                                           (5)

Условие a / b < g равносильно неравенству a / g < b, что равносильно неравенству

                                         (6)

Обозначим

                                           (7)

Лемма 1. При указанных выше условиях справедливо неравенство

q £ q `.                                                       (8)

При дополнительном условии bn > [ g /2] справедливо неравенство

q `-2 £ q.                                                      (9)

Замечание. Чтобы оказаться в рамках второго условия леммы 1 необходимо нормализовать числа a и b, умножив их оба на . При этом доказывается, что частное q не изменяется.

Алгоритм деления  неотрицательных целых чисел.

Вход: делимое , делитель , n ³ 2;

Нормализация чисел a и b (нахождение нормализирующего множителя и умножение на него чисел a и b).

(d, k): = div (g, bn +1);

t:=0; for i = 1… n + m; (t, ai): = div (tg + dai, g); end for;

if t >0 then m:= m+ 1; am:= t; end if;

t:=0; for i = 1… n; (t, bi): = div (tg + dbi, g); end for;

for j = m …1; 

Подбор очередной цифры qm неполного частного. Обеспечение условий подбора очередной цифры (a / b < g, a < gb, e = gb)

e:= (0, b 1,…, bn);

p:=1;

for v = 0 … g -1;

      for i =  n …1;

           if bi > an+i   then   p:=1; break else if bi < an+i   then break;  end if;

       end for

         if p =1  then break;end if;

end for

Нахождение приближенного значения q ` цифры qm неполного частного по формуле (7).

if bn = an+j   then q`:= g - 1 else (q`, t): = div (an+j g + an+j- 1, bn);  end if;

Уточнение приближенного значения q ` цифры qm неполного частного.

 while   bn- 1 q` > ( an+j g + an+j- 1 - bnq` ) g + an+j- 2 do  q`:= q`- 1; end while;

Проверка правильности подбора приближенного значения q ` цифры qm  и ее уточнение:

t:=0; for i = 1… n; (t, aj+i): = div (aj+i - q`bi + tg, g); end for;

qm := q`;

if t <0 then qm := qm -1; t:=0;  

    for i = 1… n; (t, aj+i): = div (bi-aj+i + tg, g); end for;

end if;

qm := qm + vg; (не всегда цифра в g -ичной системе счисления.

end for;

Нахождение правильного представления неполного частного и остатка.

 t:=0; for i = 1… n; (t, qi): = div (qj + tg, g); end for;

if t >0 then n:= n+ 1; qm:= t; end if;

t = 0; for i = 1… n; (ri, t): = div (tg+ai, d); end for

Выход: неполное частное , остаток .

Возведение в натуральную степень. Предполагается, что операция умножения многозначных чисел уже реализована. Требуется число a возвести в степень числа m. Представим число m в двоичной системе счисления:

.                         (6)

Тогда возможны два возможных алгоритма вычисления степени am , которые получаются из следующих равенств:

,         (7)

.         (8)

Алгоритмы называются бинарными алгоритмами возведения в степень.

В первом случае находятся степени . Затем находится произведение всех hj,, для которых mi ¹0:

.

Во втором случае находят , далее

.

Первый алгоритм возведения в степень.

Вход: основание a, показатель степени m;

b:=1; h:= a;

while m  > 0 do  (m, r): = div (m, 2);

if r >0 then b:= bh; end if;

if m > 0 then h:= h·h; end if;

end while;

Выход: b.

Второй  алгоритм возведения в степень.

Вход: основание a, показатель степени m;

b:= a; h:=2 j:=-1;

while m  > 0 do  j:= j +1; (m, mj): = div (m, 2); end while;

for i = j-1…0; if mj >0 then b:= b·b·a else b:= b·b; end if; end for;

Выход: b.

Первый способ более экономен в отношении памяти, во втором способе происходит экономия на умножении.

 

Основная теорема арифметики

Теорема 1 (основная теорема арифметики). Любое целое число a > 1 представляется в виде произведения простых чисел:

a = p 1 p 2pk,                                                 (1)

где p 1, p 2,…, pk – простые числа и такое представление единственно с точностью до порядка следования простых сомножителей, т.е. если есть второе представление вида

a = q 1 q 2qm,                                                 (2)

где q 1, q 2,…, qm – простые числа, то k = m и при соответствующей перестановке сомножителей pi = qi для всех i = 1, 2,…, k.

Доказательство. Существования. Докажем методом математической индукции по a. Если a = 2, то разложение (1) имеет место при k =1, p 1 = 2. Допустим, что разложение (1) имеет место для любых целых чисел b, 2 £ b < a. И докажем справедливость утверждения теоремы для числа a.

Если a - простое число, то формула (1) имеет место при k =1, p 1 = a. Если a - составное число, то

a = bc, где 2 £ b, c < a; b, c Î Z.                                (3)

  По индуктивному предположению каждое из чисел b, c представляется в виде произведения простых чисел

b =p 1 p 2pl, c =pl+ 1 p l+ 2pk.

Подставляя b, c в формулу (3) получим требуемое разложение.

Единственность. Доказательство единственности опирается на следующие леммы:

Лемма 1. Если p – простое число, a –любое целое число, то либо p | a либо (p, a) = 1.

Доказательство.  Пусть D = НОД(p, a). Тогда D | p. Так как p – простое число, то либо D = 1, либо D = p. В первом случае числа p, a взаимно простые, (p, a) = 1. Во втором случае, по определению НОД p | a. ÿ

Лемма 2. Если p – простое число, a, b – любые целые числа и p | ab, то p | a или p | b.

Доказательство.  Пусть p | ab. Тогда по лемме 1 либо p | a либо (p, a) = 1. В первом случае утверждение леммы справедливо, а во втором случае, по свойству взаимно простых чисел получаем p | b. ÿ

Лемма 3. Если p, q 1, q 2,…, qm – простые числа,  и p |(q 1 q 2qm), то p совпадает хотя бы с одним из простых сомножителей q 1, q 2,…, qm.

Доказательство.  Докажем утверждение методом математической индукции по m. Пусть m = 1. Тогда p | q 1. По определению делимости q 1 = pa. Так как q 1простое число, то a = 1 или p =1. Последнее невозможно. Поэтому a =1 и q 1 = p.

Предположим, что утверждение теоремы справедливо для m = k и докажем его для m = k + 1 сомножителей. Пусть p |(q 1 q 2qk qk +1). По лемме 2 p |(q 1 q 2qk) или p | qk +1. В первом случае по индуктивному предположению p совпадает хотя бы с одним из сомножителей. q 1,…, qk. Во втором случае по доказанному выше       p = qk +1. ÿ

Продолжение доказательства теоремы. Доказываем теорему методом от противного. Допустим, что единственность не имеет места. И пусть a наименьшее натуральное число для которого единственность разложения не имеет места. Тогда для числа a  имеют место два разложения (1) и (2). Тогда

a = p 1 p 2pk = q 1 q 2qm.                                  (4)                                                                                                    

Левая часть этого равенства делится на простое число p 1, поэтому и правая часть его делится на p 1. Тогда по лемме 3, число p 1 совпадает хотя бы с одним из сомножителей. q 1,…, qm.  Можно считать, что p 1 = q 1, в противном случае можно переставить сомножители во втором произведении. Так как p 1| a, то a = p 1 b, где b Î N, b < a. Тогда из равенства (4) получаем:

b = p 2pk = q 2qm.

 Так как b Î N, b < a, то для числа b имеет место единственность разложения, т.е. k = m и при соответствующей перестановке сомножителей pi = qi для всех i = 2, 2,…, k. Последнее противоречит тому, что разложения (1) и (2) числа a различны. ÿ

Рассмотрим разложение (1) числа a на простые множители. В этом разложении могут оказаться одинаковые простые множители. Произведение всех простых множителей запишем в виде натуральной степени одного простого числа и представим число a в виде:

 ,                                      (5)

где - попарно различные простые числа, a1, a2,…,a r - натуральные числа (иногда в этом разложении допускаются и нулевые показатели, когда соответствующий неприводимый многочлен).

Представление целого числа в виде (5) называется каноническим представление целого числа a. В силу теоремы предыдущего параграфа получаем следующую теорему.

Теорема 2. Для любых целого числа a > 1 каноническое разложение (6) существует и оно однозначно с точностью до порядка следования степеней простых чисел.

Теорема 3. Пусть , - канонические разложения целых чисел a, b (допускаются нулевые показатели). Тогда справедливы следующие утверждения:

1) a, делит b.тогда и только тогда. когда a i £ b i для любого i = 1, 2, …, r;

2)

3)

Доказательство. 1. Пусть a, делит b. Тогда по определению делимости a = bc, где c Î Z. Пусть теперь - каноническое разложение числа с. Тогда предыдущее равенство представится в виде

.

В силу единственности канонического разложения получаем равенства b i = a i + g i для любого i = 1, 2, …, r. Так как g i ³ 0, то отсюда получаем требуемое неравенство b i ³ a i.

Обратно, если b i ³ a i для любого i = 1, 2, …, r, то и тогда получаем b i = a i + g i, где g i ³ 0. Тогда

,

где с Î Z.

2. Пусть . Так как              mi = min{a i, b i } £   a i, b i для любого i = 1, 2, …, r, то по доказанному свойству 1 D \ f, D | g.

Пусть теперь - общий делитель чисел a и b. Тогда по свойству 1 d i  £   a i, d i  £ b i для любого i = 1, 2, …, r, то d i  £min{a i, b i } = mi. Тогда по свойству 1 имеем d \ D. По определению многочлен есть НОД многочленов f и g.

Аналогичным образом доказывается третья часть теоремы 2.

В теории чисел более двух тысяч лет решались две основные задачи:

1. Задача тестирования целого числа на простоту: найти наиболее быстрый алгоритм определения, является данное целое число a простым или составным.

2. Задача факторизации: нужно разложить число a на множители, если известно, что оно простое.

Оказалось, что эти задачи принципиально отличаются по трудности. Распознать, на простоту наугад взятое число, содержащее 125 и более десятичных знаков можно за несколько минут, а для того чтобы разложить такое число на множители может потребоваться миллионы лет машинного времени.

В связи с появлением в криптографии алгоритмов несимметричного шифрования оказалось, что эти задачи имеют большое практическое значение. Через две тысячи лет теория чисел стала прикладной наукой. В последние два десятилетия интерес к этим задачам теории чисел многократно возрос. Появилось большое число работ, посвященных этим задачам.

Отметим, что задача факторизации более трудная задача чем задача тестирования числа на простоту, на чем и основан алгоритм RSA. В последние десятилетия появилось множество различных алгоритмов тестирования и факторизации целых чисел. Найдены быстрые алгоритмы тестирования на простоту целых чисел и новые алгоритмы факторизации, но тем не менее скорость факторизации чисел на десятки порядков ниже скорости их тестирования.

В начале 80-х годов Адлеман, Померанс и Румели предложили детерминированный алгоритм проверки простоты чисел, для заданного натурального числа n алгоритм делает операций. Существенное улучшение их алгоритма в 1981 году получено Х.Ленстрой. Реализация этого алгоритма позволила проверять на простоту числа n порядка 10100 за несколько минут. В настоящее время удается тестировать на простоту числа порядка 101000. В 1992 г Адлеман и Хуанг предложили вероятностный алгоритм проверки на простоту чисел, полиномиальной сложности, теоретическая оценка операций. Индийскими математиками Агравала, Кайала и Саксены в 2002 г. получен алгоритм проверки целого числа на простоту полиномиальной сложности, теоретическая оценка операций.

Алгоритм факторизации числа n с помощью пробного деления, опирающийся на теорему 2 предыдущей главы требует  арифметических операций. Алгоритм Шермана - Лемена, полученный в 1974 году, требует  арифметических операций. Лучший из детерминированных алгоритмов факторизации Полларда - Штрассена, найденный в 1974 году, требует  арифметических операций для разложение числа на два множителя.

Пусть

.

Существуют алгоритмы факторизации натуральных чисел n, делающие  арифметических операций. Например, алгоритм квадратичного решета составляет  арифметических операций и позволил факторизовать 129-значное RSA-число. Другой алгоритм решета числового поля позволил разложить в 2000 году 155-значное RSA - число – число 512 бит. На факторизацию последнего числа ушло 8400 mips-year (при миллионе операций в секунду 8400 годов).

 

ПАМ

Толстиков А.В.

Лекция 3. Теория делимости целых чисел.

 

1. Делимость целых чисел. Теорема о делении с остатком.

2. Представление целого числа в g-ичной системе счисления.

3. Целочисленная арифметика многократной точности.

4. Наибольший общий делитель целых чисел и наименьшее общее кратное целых чисел. Алгоритм Евклида.

5. Цепные дроби и их свойства. Линейные диофантовы уравнения и их системы.

6. Простые и составные числа. Критерий простоты числа. Теорема Евклида. Неравенства Чебышева.

7. Основная теорема арифметики и следствия из нее.

Литература. Виноградов И.М. – С. 7-54;

                   Василенко О.Н. –С. 254- 273;

Коробейников А. Г. и др. –С. 2-17


Поделиться с друзьями:

Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.137 с.