У вас вопросы?
У нас ответы:) SamZan.net

индикаторы текущего и порождаемого подмножеств должны различаться всего в одном разряде

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 26.12.2024

46.

Коды Грея и алгоритмы их порождения

В целях минимизации вычислительной сложности построения всех подмножеств множества следует использовать алгоритм с наименьшим количеством преобразований при переходе от одного подмножества к другому. Естественно, это будет алгоритм, в котором при построении следующего подмножества из текущего производится операция либо добавления, либо удаления всего лишь одного элемента множества. В этом случае векторы-индикаторы текущего и порождаемого подмножеств должны различаться всего в одном разряде. Такие последовательности двоичных наборов известны как коды Грея .

Определение 1. Упорядоченный циклический набор 2n различных n-разрядных двоичных векторов, в котором любые два рядом расположенных вектора различаются только в одном разряде, называется n-разрядным кодом Грея и обозначается G(n).

Из всего многообразия двоичных кодов Грея в данном разделе будут рассматриваться только так называемые двоично-отраженные коды Грея. Эти коды обладают рядом свойств, опишем их. Пусть G(n) – n-разрядный код Грея, записанный в форме двоичной 2^n x n-матрицы так, что i-я строка матрицы является i-м вектором кода Грея:

Тогда двоичный (n+1)-разрядный код Грея задаётся следующим образом:

Листинг 2. Алгоритм порождения n-разрядного двоично-отражённого кода Грея

void CodеGrey(int n) {

int * Stack = new int [n]; // Стек 

int top = -1; // Вершина стека

int * G = new int[n]; // Массив для текущего

// вектора кода Грея

int i, j, k, m;

// Инициализация кода Грея и заполнение рабочего стека

for (i = n - 1; i >=0; --i) {

G[i] = 0;

Stack[++top] = i+1;

}

// Формирование кода Грея

while (top >= 0) {

// Готовый вектор выводим на экран

for (i = 0; i < n; ++i) cout << G[i] << " ";

cout << endl;

// Определяем позицию, в которой следующий вектор

// отличается от текущего

i = Stack[top--];

// Инвертируем значение булевой переменной

G[n - i] = (G[n - i] + 1) % 2;

// Заносим в стек индексы позиций для дальнейших

// преобразований

for (j = i - 1; j > 0; --j)

Stack[++top] = j;

}

for (i = 0; i < n; ++i) cout << G[i] << " ";

cout << endl;

}

Вычислительная сложность алгоритма

Оценим вычислительную сложность предложенного алгоритма порождения двоично-отражённого кода Грея. Заметим, что реализация стека в основном алгоритме требует выполнения внутреннего цикла, в котором i – 1, ..., 1 заносятся в стек при чтении из него элемента i. Поскольку , то на каждом шаге число выполняемых операций не будет превосходить n. Число итераций внешнего цикла равно 2^n, следовательно, для выполнения алгоритма потребуется не более O(n*2^n) операций.





1. Васко Нуньес де Бальбоа
2. ОРЛОВСКИЙ ГОСУДАРСТВЕННЫЙ АГРАРНЫЙ УНИВЕРСИТЕТ КАФЕДРА ЭЛЕКТРОСНАБЖЕНИЕ
3.  Талин Чан Tling Chn Mrket; 21
4. Отчет по лабораторной работе
5. Оцінка вартості безтермінових облігацій привілейованих та звичайних акцій Безтерміновий цінний папір
6. Достижения арабской психологии
7.  При ответе на этот вопрос историки используют разные подходы- Эту войну развязали империалистически
8. МЕДИКОПЕДАГОГИЧЕСКУЮ КОМИССИЮ Фамилия имя отчество ребенка Дата рождения Домашний адрес телефон
9. Реферат на тему- Інформатика Виконав учень - 10Єкласу Кондратюк Ігор Ке
10. совокупность операций и сделок отнесенных в силу закона к банковским совершение которых допускается тольк
11. Лекція 22 Нелінійне підсилення множення частоти електричних коливань
12. Маргинальность в искусстве
13. Античный мир
14. Формы и методы профилактики детской беспризорности и безнадзорности1
15. 1неизвестное число в подобных равенствах обозначается буквами латинского алфавита 2решить уравнение з
16. Доклад- Профилактика преступлений
17. Проблема применения моделей устойчивого развития на региональном уровне
18. Принципы формирования прибыли в торговле
19. Сибирский государственный медицинский университет Федерального агентства по здравоохранению и социальн
20. на заседании ШМО на заседании МС Директор