Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Свойства делимости целых чисел




Алгоритм Кнута

………………………

;

Алгоритм Кнута удобно представлять в виде таблицы

Остаток (r) q x y
A * x-1 1 y-1 0
B * x0 0 y0 1
r1 q1 x1 y1
r2 q2 x2 y2
………………….. ………………………. …………………… ……………………….
rn-2 qn-2 xn-2 yn-2
rn-1 qn-1 xn-1 yn-1

 

;

 

Общий вид:

xj=xj-2-qjxj-1

yj=yj-2-qjyj-1

 

 

Остаток (r) q x y
a=1234 *    
b=54 *    
    1-22*0=1  
    -1  
    1-5*(-1)=6  
    -1-1*6= -7  
       

 

 

Простые числа

Два числа a и b называются взаимно простыми если их НОД = 1

(a1,a2,….,an)= НОД

(a1,a2) = d1

(a3,d1) = d2

…………..

(dn-3,dn-1) = dn

a1*a2= k*d

 

Теорема разложения целых чисел (Главная теорема арифметики)

Любое составное число m можно однозначно представить в виде произведения простых сомножителей p, m = p1*p2*…..*pk

Эта теорема имеет большое прикладное значение в криптографии.

Обозначения:

m – составное число

p - простое

Составное число может раскладываться на простые, при этом могут быть две формы:

1)когда все сомножители разные

2) когда есть кратные сомножители

Пример: m= 720

Применим школьный алгоритм разложения – последовательное деление на возрастающие простые сомножители

   
   
   
   
   
   
   

Кратность указывается с помощью верхнего индекса 720 = 24*32*5 - такая форма носит название – каноническое разложение на простые сомножители.

Это позволяет при большем числе кратных сомножителей достаточно компактно записать разложение.

С помощью такого «школьного» алгоритма число с большим количеством десятичных знаков можно раскладывать годами.

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

Одним из алгоритмов основанных на решение сложных математических задач, является алгоритм RSA. Этот алгоритм мы рассмотрим в одной из следующих лекций и немножко под другим углом.

Применение этой теоремы это – например для нахождение НОД. Т.е зная разложение, два числа, допустим a и b такие что:

Примечание: При получение разного числа сомножителей можно дописать так называемые «фиктивные» сомножители. н-р:

мы можем найти НОД по формуле:

От каждого разложение берется пара сомножителей, выбирается по показателям.

из каждой пары сомножителей выбирается сомножитель с минимальным показателем.

Еще один простейший способ нахождения это- решето Эратосфена. Тоже «школьный» алгоритм.

Принцип такой:

имеем ось. начиная от 1 (работаем с натуральными числами) и до некоторого N (в нашем случае допустим 132). И путем просеивания всех составных чисел на этой оси. Сначала берется наименьшее простое число с оси (p= 2) и все числа кратные этому числу (в нашем случае 2) вычеркиваются. Далее берется следующее наименьшее простое число (p=3) и вычеркиваются все числа кратные данному. и.т.д.

1 2 3 4 …………. N=132

Возникает вопрос: Будем мы брать здесь например 17 или 19?

Выбираем числа p по формуле . Т.е. p не должно быть больше чем корень из N.

В конце концов, на оси все составные числа будут вычеркнуты и останутся только простые числа.

 

Пример

   
   
   
   

Т.е. 720= 24*32*5,

а 90= 2*32*5

Берем минимальные показатели:

- т.е. число 90 является НОД(d) чисел 90 и 720.

Аналогично НОК:

- т.е. число 720 является НОК(k) чисел 90 и 720.

 

Другая сфера приложения это н-р: Имеем некоторое большое число и имеем его разложение и на основе этого надо найти все его делители.

Если кратность в разложение есть то удобно использовать определенный способ нахождения всех делителей.

В общем случае когда составное число раскладывается по канонической формуле все делители можно найти по такой формуле (эта формула тоже обосновывается теоремой)

- мы имеем разложение

…………….

В нашем случае (про 720)

и подставляя всевозможные вариации этих значений мы и получим все делители.

т.е. d = 1,2,4,8,16…………

в нашем случае будет 30 делителей

Еще один вариант приложения разложения. По разложения можно найти сумму всех делителей ()

Принято обозначать сумму всех делителей нашего числа а как

Для нашего примера это будет выглядеть как:


 




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


Дата добавления: 2014-01-15; Просмотров: 659; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.022 сек.