- •Вопросы государственного экзамена
- •1. Архитектура эвм
- •2. Процессор
- •3. Периферийные устройства эвм. Внешние запоминающие устройства
- •4. Организация прерываний в эвм
- •1. Информатика и информация
- •2. Обеспечение целостности и безопасности информации
- •3. Программное обеспечение (по)
- •1. Назначение и функции oc
- •1. Первый период (1945–1955 гг.). Ламповые машины.
- •2. Второй период (1955 г.– начало 60-х). Эвм на основе транзисторов.
- •3. Третий период (начало 60-х – 1980 г.). Эвм на основе интегральных микросхем.
- •4. Четвертый период (с 1980 г. По настоящее время). Персональные компьютеры. Классические, сетевые и распределенные системы
- •2. Процессы
- •3. Организация памяти компьютера
- •2.Один процесс в памяти
- •3.Оверлейная структура
- •4.Динамическое распределение. Свопинг
- •5.Схема с переменными разделами
- •4. Система управления вводом-выводом
- •1. Критерии качества программ
- •2. Процессы жизненного цикла программных средств
- •3. Семантический подход к языкам программирования
- •Перегрузка процедур и функций
- •Множественное наследование
- •Шаблонные функции
- •Обработка исключений
- •4. Основные структуры программирования
- •Операторы действия
- •Оператор цикла
- •Подпрограмма
- •5. Структурные типы данных в языках программирования
- •Массивы
- •Записи (структуры)
- •Множества
- •6. Этапы развития технологии программирования
- •1. Представление математических объектов в системах компьютерной алгебры
- •2. Алгоритм Евклида
- •3. Модулярная арифметика
- •4. Вычисление полиномов
- •5. Нахождение нод полиномов от одной переменной
- •1. Понятие информации формы её представления
- •2. Энтропия
- •3. Количество информации
- •1 Комбинаторный подход
- •2 Вероятностный подход
- •3 Алгоритмический подход
- •4. Кодирование
- •5. Сжатие данных
- •6. Помехоустойчивое кодирование
- •1. Html
- •Id и name
- •Idref и idrefs
- •2. Основы JavaScript
- •3. Основы web-дизайна
- •4. SharePoint 2010
- •1. Функции, процедуры и службы управления учебным процессом
- •2. Состав и функции подсистем ису
- •3. Технологии проектирования ис
- •4. Основные направления информатизации процесса обучения
- •1. Системный подход в моделировании
- •2. Стохастическое моделирование
- •3. Имитационное моделирование
- •4. Агентное моделирование
- •1. Методы представления знаний
- •3. Экспертные системы
- •4. Логическое программирование
- •1. Процесс проектирования информационных систем в образовании
- •2. Этапы проектирования информационных систем в образовании
- •3. Управление проектированием информационных систем в образовании
- •4. Анализ компромиссов и рисков программного проекта
- •5. Uml как язык объектно-ориентированного проектирования
- •1. Основные задачи и базовые понятия теории систем
- •2. Системный подход к исследованию систем
- •3. Методы описания информационных систем
- •4. Моделирование и проектирование информационных систем
- •5. Информационные модели принятия решений
2. Алгоритм Евклида
Вычисление НОД.
Число а называется общим делителем чисел b1, b2,…, bn, если оно является делителем каждого из чисел b1, b2,…, bn.
Наибольшим общим делителем целых чисел a1,…,an , называется такой их общий делитель, который делится на любой общий делитель этих чисел: обозначается НОД (a1,…,an).
Каноническое разложение
Если a=и b= суть канонического разложения целых положительных чисел a и b, то d=НОД(a,b), где d=
Простой способ
a= 24 b=6
24-6=18
18-6=12
12-6=6 < НОД
6-6=0
Теорема Евклида.
Теорема Евклида
Пусть a и b – два целых числа, b ≠ 0 и a = bq + r (0 ≤ r < |b|). Тогда НОД (a,b) = НОД (b,r).
Алгоритм Евклида, сравнение алгоритмов.
Для нахождения НОД двух целых чисел применяется способ «последовательного деления», называемый алгоритмом Евклида.
Сущность алгоритма Евклида состоит в том, что в силу теоремы Евклида задача нахождения НОД (a,b) сводится к более простой задаче нахождения НОД (b,r), 0 ≤ r < |b|. Если r = 0, то НОД (a,b) = b. Если же r ≠ 0, то получаем цепочку неравенств
a = bq0 + r1, 0 ≤ r < |b|,
b = r1q1 + r2, 0 ≤ r2 < r1,
……………………
rn-2 – rn-1qn-1 + rn, 0≤ rn < rn-1,
rn-1 = rnqn + rn+1.
Приходим к выводу: если к целым числам a,b, где b ≠ 0, применить алгоритм Евклида, то последний ненулевой остаток в этом алгоритме и есть НОД (a,b).
Пример: a=86, b=32
a = b*q + p1
86 = 32*2 + 22
32 = 22*1 + 10
22 = 10*2 +2
10 = 2*5 + 0
Ответ: НОД (86, 32) = 2
Сравнение алгоритмов
Сравним «простой» алгоритм и алгоритм Евклида. Для малых чисел ни один из них не дает преимущества в вычислениях, но для больших параметров эффективней применять алгоритм Евклида.
Соотношение Безу.
(Целые числа называют взаимно простыми, если любой их общий делитель равен +1 или -1.)
Теорема. Если целые числа a и b взаимно простые, то существуют целые числа u и v такие, что au+bv=1.
Доказательство. Рассмотрим множество I = {ax + by | x,y ϵ Z}. a ϵ I, так как a = a*1 + b*0, и b ϵ I, так как b = a*0 + b*1. Обозначим через d наименьшее положительное натуральное число, принадлежащее множеству I. Так как d ϵ I, то, согласно определению множества I, существуют целые числа u и v такие, что au+bv=d; a, b ϵ I, значит, d – общий делитель чисел a, b. Но a, b – взаимно простые, d > 0, значит, d = 1 и au+bv = 1.
Пример. Пусть a = 5 и b = 7, тогда u = -4 и v = 3, т.е. 5*(-4) + 7*3 = 1.
Расширенный алгоритм Евклида.
Алгоритм, примененный к паре чисел a,b порождает последовательность такую, что
ri-1=riqi+ri+1 для 1≤i≤n, где r0=a, r1=b, rn+1=0.
Из этих формул легко получается рекуррентная последовательность:
из которой теперь следует классический результат
rn=НОД(a,b)=una+vnb.
Литература: [1], [3], [5].
3. Модулярная арифметика
Модулярное исчисление состоит в осуществлении нескольких малых вычислений по модулям простых чисел и получении необходимого результата с помощью теоремы об остатках.
Китайская теореме об остатках.
Пусть n1 ,n2, …, nr - попарно взаимно простые числа. Пусть а1 ,а2, …, аr произвольно целые числа. Тогда система
имеет по крайней мере одно решение. Кроме того, если х' – другое решение этой системы, то хºх'(mod n1·n2· …·nr ).
Смешанная система счисления.
Идея, принадлежавшая Л.Гарнеру и представленная у Д.Кнута, состоит в том, чтобы связать с модулярным представлением еще одно представление, называемое смешанной системой счисления.
Основанием смешанной системы счисления называется множество из r³2 целых чисел n1,n2,…,nr, не обязательно взаимно простых. Если положим иn=n1·n2·…·nr, то имеется биекция (взаимно однозначное соответствие):
Обратное отображение определяется при помощи евклидовых делений:
x=q1n1+z1, q1= q2n2+z2, … , qr-1= qrnr+zr.
В случае, когда все числа ni равны, получаем обычную позиционную систему счисления (смешанная система счисления, следовательно, это система, в которой основания варьируется).
Формулы определения цифр.
Пусть n1,n2,…,nr – попарно взаимно простые числа. Пусть иCi – обратные к Ni по модулю ni.
Рассмотрим целое число x, модулярные компоненты которого x1,x2,…,xr тогда цифры x в системе со смешанным основанием ni обозначим через zi ; они находятся по формулам:
z1= x1mod n1,
z2= C2(x2-z1) mod n2,
z3= C3(x3-(N2z2+z2)) mod n3,
……………
zr= Cr(xr-(Nr-1zr-1+…+ N2z2+z1)) mod nr.
Чтобы осуществить обратный переход от системы со смешанным основанием к модулярному представлению, достаточно провести следующие вычисления:
x1=z1,
x2=(z1+z2n1)mod n2,
x3=(z1+z2n1+z3n1n2)mod n3,
…
xr=(z1+z2n1+…+zrn1n2…nr-1)mod nr.
Сравнение чисел, определение цифр в позиционной системе счисления.
Пусть имеются два целых числа x и x', заданные своими модулярными компонентами, и мы хотели узнать, которое из этих чисел (можем считать, что они оба лежат в [0,m)) больше, по возможности не вычисляя явный вид этих чисел. Вычислим сначала цифры zi и zi', соответствующие x и x' в смешанной системе счисления, определяемой модулями. В этом случае x<x' тогда и только тогда, когда наибольший вес i, на котором различаются эти числа, таков, что zi<zi'.
Определение цифр в позиционной системе счисления
Пусть целое х задано модулярными компонентами. Мы хотим вычислить его цифры в системе с основанием b. По схеме Горнера
x mod b(…((zr mod)·nr-1+ zn-1 mod b)…)·n1+z1 mod b (x-(x mod b))/b
Так мы получили первую цифру x в системе счисления с основанием b.
Алгоритм умножения двух чисел?
Литература: [1], [4], [5].