![]()
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах
РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ" ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах Гендерна антидискримінаційна експертиза може зробити нас моральними рабами ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів
Контакти
Тлумачний словник Авто Автоматизація Архітектура Астрономія Аудит Біологія Будівництво Бухгалтерія Винахідництво Виробництво Військова справа Генетика Географія Геологія Господарство Держава Дім Екологія Економетрика Економіка Електроніка Журналістика та ЗМІ Зв'язок Іноземні мови Інформатика Історія Комп'ютери Креслення Кулінарія Культура Лексикологія Література Логіка Маркетинг Математика Машинобудування Медицина Менеджмент Метали і Зварювання Механіка Мистецтво Музика Населення Освіта Охорона безпеки життя Охорона Праці Педагогіка Політика Право Програмування Промисловість Психологія Радіо Регилия Соціологія Спорт Стандартизація Технології Торгівля Туризм Фізика Фізіологія Філософія Фінанси Хімія Юриспунденкция |
|
|||||||
Прямолінійні програмиАлгоритми та їх складність Розділ III. Програмістська практика добре розрізняє алгоритми швидкі та повільні. Ці характеристики вкрай важливі для криптографії. З одного боку, користувачі криптосистеми повинні володіти швидкими алгоритмами шифрування та дешифрування, а з іншого — їх суперник не повинен мати швидкого алгоритму розкриття криптотексту без знання ключа. В ідеалі, суперник не має швидкого алгоритму розкриття не тому, що йому бракує хисту додуматись до такого алгоритму, а тому, що останнього взагалі не існує — всі алгоритми зламу криптосистеми є повільними. Наявність швидкого алгоритму для розв'язання певної задачі доводиться безпосереднім пред'явленням такого алгоритму. При цьому алгоритм може бути заданим неформальним інтуїтивно прийнятним описом, який, як правило, нескладно записати як програму у будь-якій з існуючих мов програмування. Відсутність же швидкого алгоритму для задачі є фактом більш фундаментального характеру, доведення якого вимагає глибоких математичних методів. Галуззю математики, що займається подібними питаннями, є теорія складності. Цей розділ нашого курсу присвячений концепціям теорії складності, на яких буде грунтуватись подальший виклад алгоритмічних задач теорії чисел, що на них базується сучасна криптографія. 2.1. Означення моделі. Поняття прямолінійної програми можна вводити для довільної алгебраїчної структури. Ми зробимо це для кільця з одиницею. Елементарними операціями будуть множення та додавання в кільці. Нехай задані наступні об'єкти. · Символ 1, який називається символом предметної константи і позначає одиницю кільця. · Алфавіт X = {х1,...,хm}, елементи якого називаються вхідними змінними. · Алфавіт Z = {z1,.. .,zl}, елементи якого називаються службовими змінними. · Три символи операцій •, +, -, для множення, додавання та віднімання. Прямолінійною програмою називається послідовність із l слів у алфавіті Слова, з яких складається прямолінійна програма, називаються її командами. Зауважимо, що кожна команда виконує операцію над операндами, які можуть бути лише результатами виконання попередніх команд. Кількість команд прямолінійної програми, яку ми позначили через l, називається її довжиною або складністю. Кількість команд множення називається мультиплікативною складністю, а додавання та віднімання — адитивною складністю програми. Припустимо, що в нас є прямолінійна програма, і нехай R — деяке кільце з одиницею. Кожна команда прямолінійної програми визначає деяку функцію f : Rm Приклад 2.1. Функція F(x) = х4 + x2 в будь-якому кільці обчислюється такою програмою: z1 = x z2 = z1 z3 = z2 z4 = z3+z1 Отже, складність цієї функції не перевищує 4. Насправді вона менша, тому що для обчислення функції є коротша програма: z1 = x z2 = z1+1 z3 = z1 2.2. Піднесення до степеня. Розглянемо задачу обчислення функції f(x) = xd у довільному кільці. Безхитрісна прямолінійна програма для цієї функції має складність d — 1: z1 = x z2 = z1 z3 = z2 ... zd-1 = zd-2 У подальших розділах неодноразово виникатиме задача ПІДНЕСЕННЯ ДО СТЕПЕНЯ ЗА МОДУЛЕМ n Задано: x Обчислити: xd mod n. Завжди можна вважати, що d < n. Інакше можна скористатися теоремою Ойлера, щоб понизити показник. Якщо ми використаємо для розв'язання цієї задачі наведену вище прямолінійну програму (з множенням в кільці Zn), то отримаємо експоненційний алгоритм. Справді коли d не набагато менше, ніж п, то довжина входу має порядок logn а кількість операцій множення має порядок п. На щастя, є значно ощадніший алгоритм, який був відомий ще до нашої ери в Індії. Ми називатимемо його бінарним методом. Опишемо цей метод у вигляді прямолінійної програми для обчислення функції f(x) = хd. Подамо показник d у двійковій системі числення: d = (di . . .d1d0)2 де di Всього команд l + 1. Результатом виконання останньої є Всього витрачається l+ ВПРАВИ 2.1.Скласти прямолінійну програму для обчислення в будь-якому кільці загального многочлена степеня п: f(x,x0, x1, . . . , xn) = xn xn + xn-1 xn-1 + ... + x1 x + x0. a)Реалізувати обчислення безпосередньо за канонічною формою. b)Реалізувати обчислення за схемою Горнера. Порівняти складність програми в першому і другому випадках. (Доведення оптимальності схеми Горнера див. в [35] або [7, розділ 12].) 2.2.Довести, що функцію f : Z2 2.3.Використовуючи бінарний метод, написати прямолінійні програми для обчислення функцій а) х32 , b) х31 , с) х21 . ЛЕКЦІЯ 9 Читайте також:
|
||||||||
|