
- •Основные методы представления знаний в экспертных системах. Этапы (прототипы) разработки экспертной системы. Коллектив разработчиков экспертной системы.
- •Математический нейрон. Его графическое изображение, формулы по которым он работает, виды активационных функций. Моделирование основных логических функций с помощью математического нейрона
- •Персептрон Розенблатта, его принцип действия на примере распознавания букв.
- •Сравнительный анализ процедурной, функциональной, объектно-ориентированной и логической парадигм программирования.
- •Этапы и методологии проектирования баз данных.
- •Программное обеспечение для проектирования, реализации проектов информационных систем. (case-технологии, субд и пр.)
- •Представление числовых величин в эвм: позиционные системы счисления; форматы чисел с фиксированной и плавающей точкой; представление в прямом, обратном и дополнительном кодах.
- •Принципы организации машины фон Неймана.
- •6) Представительский уровень
- •7) Прикладной уровень
- •Основы теории моделирования информационных систем и протекающих в них процессов.
- •Аналитические методы моделирования (ам)
- •Имитационные методы моделирования (им)
- •Функциональные методы моделирования (фм)
- •Статическое моделирование (см)
- •Криптография как наука. Основные понятия и определения
- •Электронная цифровая подпись. Гост р 34.10-2001
- •Управление оперативной памятью в современных операционных системах: управление физической и виртуальной памятью, способы организация виртуальной памяти, организация подкачки.
- •Управление хранением данных: система накопителей информации, система драйверов накопителей информации, современные файловые системы.
- •Обходы графов, эйлеровы и гамильтоновы графы, алгоритм Флери. Укладки графов, изоморфизм, гомеоморфизм, планарность, критерий планарности, формула Эйлера.
- •Двудольные графы, критерий двудольности, деревья, остовные деревья
- •Экстремальные задачи теории графов, «жадные» алгоритмы, алгоритм Дейкстры
- •Раскраски графов, «жадный» алгоритм. Хроматическое число, хроматический многочлен, его нахождение и свойства.
- •Элементарные булевы функции и способы их задания, существенные и фиктивные переменные. Разложение булевых функций по переменным, сднф, скнф, полиномы Жегалкина.
- •Повторные выборки, сочетания и размещения (с возвращением и без возвращения элементов). Комбинаторные принципы.
- •Биномиальные и полиномиальные коэффициенты, бином Ньютона, треугольник Паскаля. Полиномиальная формула.
- •Алфавитное кодирование: необходимое и достаточные условия однозначности декодирования, теорема Маркова, алгоритм Маркова.
- •Коды с минимальной избыточностью (коды Хаффмана), метод построения. Самокорректирующиеся коды (коды Хэмминга), метод построения.
- •Недетерминированные двухполюсные источники, замкнутые множества состояний. Задача синтеза автоматов-распознавателей.
- •Эквивалентные состояния, эквивалентные автоматы, минимизация автоматов, алгоритм Мили.
- •Особенности организации операционной системы Unix. Цели создания и структура операционной системы.
- •Понятие сложности алгоритма и сложности (объема) входных данных. Основные правила вычисления сложности алгоритма (сложность линейного алгоритма, ветвления, цикла).
-
Представление числовых величин в эвм: позиционные системы счисления; форматы чисел с фиксированной и плавающей точкой; представление в прямом, обратном и дополнительном кодах.
Позиционная система счисления — система счисления, в которой значение каждого числового знака (цифры) в записи числа зависит от его позиции (разряда).
Унарная система счисления является вырожденным случаем позиционной системы счисления.
Позиционная система счисления обладает рядом свойств:
Для записи числа x в b-ричной системе счисления требуется цифр, где означает взятие целой части числа.
Естественный порядок на натуральных числах соответствует лексикографическому порядку на их представлениях в позиционной системе счисления. Поэтому сравнивать их представления можно поразрядно, начиная со старшего разряда, до тех пор, пока цифра в одном числе не будет больше соответствующей цифры в другом. Например, для сравнения чисел 321 и 312 в десятичной системе счисления нужно сравнивать цифры в одинаковых разрядах слева направо:
3 = 3 — результат сравнения чисел пока не определён;
2 > 1 — первое число больше (независимо от оставшихся цифр).
Арифметические операции над числами. Позиционная система счисления позволяет без труда выполнять сложение, вычитание, умножение, деление и деление с остатком чисел, зная только таблицу сложения однозначных чисел, а для трёх последних операций ещё и таблицу умножения в соответствующей системе.
Переводы чисел из n-ричной в десятичную и обратно:
Перевод из десятичной системы счисления
Целая часть
-
Последовательно делить целую часть десятичного числа на основание, пока десятичное число не станет равно нулю.
-
Полученные при делении остатки являются цифрами нужного числа. Число в новой системе записывают, начиная с последнего остатка.
Дробная часть
-
Дробную часть десятичного числа умножаем на основание системы, в которую требуется перевести. Отделяем целую часть. Продолжаем умножать дробную часть на основание новой системы, пока она не станет равной 0.
-
Число в новой системе составляют целые части результатов умножения в порядке, соответствующем их получению.
Перевод в десятичную из n-ричной:
-
Каждую цифру в числе умножить на n в степени равной разряду цифры, которое она занимает в числе. Для положительных разряды начинаются с 0 и дальше. Для отрицательных разряды будут от -1 и далее.
Прямой код — способ представления двоичных чисел с фиксированной запятой в компьютерной арифметике. Главным образом используется для записи положительных чисел.
При записи числа в прямом коде старший разряд является знаковым разрядом. Если его значение равно 0 — то число положительное, если 1 — то отрицательное. В остальных записывается двоичное представление модуля числа. Примеры:
4 =100= 0.0000100
-5 =-101= 1.0000101
9/16=0.1001=0.1001000
-9/16= -0.1001=1.1001000
Недостатки прямого кода:
-
В прямом коде есть два варианта записи числа 0 (например, 0000 0000 и 1000 0000 в восьмиразрядном представлении).
-
Использование прямого кода для представления отрицательных чисел в памяти компьютера предполагает или выполнение арифметических операций центральным процессором в прямом коде, или перевод чисел в другое представление (например, в дополнительный код) перед выполнением операций и перевод результатов обратно в прямой код (что неэффективно).
Обратный код - способ представления двоичных чисел позволяющий вычесть одно число из другого, используя только операцию сложения над натуральными числами.
Обратный код отличается от прямого кода записью отрицательных чисел.
Отрицательные числа в отрицательном коде записываются ввиде:
(знаковый разряд. Для отрицательных = 1) + (инвертированное число взятое по модулю).
Пример:
- 5 записать в обратном коде в двоичной система счисления:
Т.к. число отрицательное то старший разряд = 1. Число -5 по модулю = 5 = 000 01012. Инвертируем число и припишем знаковый разряд, получим 1111 1010.
Если сложить 5(0000 0101) и -5 (1111 1010) то получится 0 (1111 1111). Если быть совсем точным то -0, но не суть.
В при использовании обратного кода остается проблема с 0 и -0, однако позволяет производить операцию вычитания используя операцию сложения, и это хорошо.
Дополнительный код — наиболее распространённый способ представления отрицательных целых чисел в компьютерах. Он позволяет заменить операцию вычитания на операцию сложения и сделать операции сложения и вычитания одинаковыми для знаковых и беззнаковых чисел, чем упрощает архитектуру ЭВМ.
Преобразование числа из прямого кода в дополнительный осуществляется по следующему алгоритму.
-
Если число, записанное в прямом коде, положительное, то к нему дописывается старший (знаковый) разряд, равный 0, и на этом преобразование заканчивается;
-
Если число, записанное в прямом коде, отрицательное, то все разряды числа инвертируются, а к результату прибавляется 1. К получившемуся числу дописывается старший (знаковый) разряд, равный 1.
Пример: переведем число -5 в доп код и обратно.
-
-510 = 1012.
-
Инвертируем, получим 0102.
-
Прибавим 1, получим 0112
-
Припишем слева 1 т.к. число – отрицательное. Окончательный результат: 10112
Переведем обратно:
-
Инвертируем, получим 01002
-
Прибавим 1, получим 01012
-
Если сложить, то что мы получили (5), с его дополнительным кодом (-5) => 0101 + 1011 = 10000. Т.к. используется 4 разряда то 1 отбрасывается, все сошлось, значит преобразования были верными.
Плюсы и минусы дополнительного кода:
Преимущества
-
Один и тот же регистр может хранить как n-битовое положительное число, так и (n−1)-битовое число со знаком, с общими для обоих форматов операциями сложения, вычитания и левого сдвига.
-
Более удобная упаковка чисел в битовые поля.
-
Отсутствие числа «минус ноль».
Недостатки
-
В сложных форматах (таких, как плавающая запятая или двоично-десятичный код) большинство преимуществ аннулируются.
-
Модуль наибольшего числа не равен модулю наименьшего числа. Пример: знаковое целое 8-битовое. Максимальное число: 12710 == 7F16 == 011111112. Минимальное число: -12810 == 8016,дополнительный код == 100000002,дополнительный код. Соответственно, не для любого числа существует противоположное. Операция изменения знака может потребовать дополнительной проверки.
Число с фиксированной запятой — формат представления вещественного числа в памяти ЭВМ в виде целого числа. Для хранения дробного числа фиксируется разрядная сетка, в которой указано, сколько бит отводится на целую часть числа, а сколько на дробную. Это легко продемонстрировать на рублях. Для хранения числа, соответствующего 123 рублям 56 копейкам необходимо чтобы разрядная сетка была (6,2) в 8 разрядной сетке. Это значит что 6 разрядов отводится на целую часть, а 2 на дробную. И выглядеть в конечном итоге это число будет 000123456. При этом система знает, что число является дробным и последние 2 разряда являются дробной частью числа.
Применение
-
Для ускорения вычислений в местах, где не требуется высокая точность
-
Чтобы обеспечить минимальную поддержку дробных чисел на целочисленном процессоре . Если не решаются некорректные задачи и СЛАУ высокого порядка, фиксированной запятой зачастую достаточно — важно только подобрать подходящую цену (вес) младшего разряда для каждой из величин.
-
Для записи чисел, которые по своей природе имеют постоянную абсолютную погрешность: координаты в программах вёрстки, денежные суммы. Например, файлы метрики шрифтов TeX используют 32-битный знаковый тип с фиксированной запятой (12,20).
-
Недостаток фиксированной запятой — очень узкий диапазон чисел, с угрозой переполнения на одном конце диапазона и потерей точности вычислений на другом. Эта проблема и привела к изобретению плавающей запятой
Число с плавающей запятой
Такое число состоит из:
-
Мантиссы (выражающей значение числа без учёта порядка)
-
Знака мантиссы (указывающего на отрицательность или положительность числа)
-
Порядка (выражающего степень основания числа, на которое умножается мантисса)
-
Знака порядка
Нормальнойформой числа с плавающей запятой называется такая форма, в которой мантисса (без учёта знака) находится на полуинтервале [0; 1) . Число с плавающей запятой, находящееся не в нормальной форме, теряет точность по сравнению с нормальной формой. Такая форма записи имеет недостаток: некоторые числа записываются неоднозначно (например, 0,0001 можно записать в 4 формах — 0,0001·100, 0,001·10−1, 0,01·10−2, 0,1·10−3), поэтому распространена также другая форма записи — нормализованная, в которой мантисса десятичного числа принимает значения [1;10], а мантисса двоичного числа принимает значения от 1 (включительно) до 2 (не включительно) (). В такой форме любое число (кроме 0) записывается единственным образом. Недостаток заключается в том, что в таком виде невозможно представить 0, поэтому представление чисел в информатике предусматривает специальный признак (бит) для числа 0.
В вычислительных машинах показатель степени принято отделять от мантиссы буквой «E» (exponent). Например, число 1,528535047·10−25 в большинстве языков программирования высокого уровня записывается как 1.528535047E-25.
Запись числа в форме с плавающей запятой позволяет производить вычисления над широким диапазоном величин, сочетая фиксированное количество разрядов и точность. Например, в десятичной системе предоставления чисел с плавающей запятой (3 разряда) операцию умножения, которую мы бы записали как
0,12 × 0,12 = 0,0144
в нормальной форме представляется в виде
(1,20·10−1) × (1,20·10−1) = (1,44·10−2).
В формате с фиксированной запятой мы бы получили вынужденное округление
0,120 × 0,120 = 0,014.
Мы потеряли крайний правый разряд числа, так как данный формат не позволяет запятой «плавать» по записи числа.