Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Консультации по информатике


РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты в разделе

Коцюрбенко Алексей aka Жерар
Статус: Мастер-Эксперт
Рейтинг: 247
∙ повысить рейтинг »
mklokov
Статус: 6-й класс
Рейтинг: 169
∙ повысить рейтинг »
CradleA
Статус: Профессионал
Рейтинг: 85
∙ повысить рейтинг »

∙ Информатика

Номер выпуска:320
Дата выхода:13.06.2017, 10:45
Администратор рассылки:Андреенков Владимир (Профессор)
Подписчиков / экспертов:19 / 19
Вопросов / ответов:5 / 6

Консультация # 191098: Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос: 2. Произвести преобразование десятичного числа Z в двоичное и опреде-лить для него код Грея: Z = 2810. ...
Консультация # 191099: Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос: 3. Произвести преобразование кода Грея ZG в двоичное число: ZG = 10011000101100. ...
Консультация # 191100: Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос: 4. Синтезировать коды Шеннона-Фено и Хаффмена для указанной ниже группы символов: Символы Вероятности Z1 0.05 Z2 0.13 Z3 0.20 Z4 0.15 Z5 0.22 Z6 0.07 Z7 0.08 Z8 0.10 ...
Консультация # 191101: Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос: 5. Произвести преобразование десятичного числа D в двоичное и опреде-лить для него код Хэмминга: D = 83. ...
Консультация # 191102: Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос: 6. Определить значение переданного с использованием кода Хэмминга числа. При передаче кода имела место однократная ошибка: 1 0 1 1 0 1 1 0 0 0 0 ...

Консультация # 191098:

Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:
2. Произвести преобразование десятичного числа Z в двоичное и опреде-лить для него код Грея:
Z = 2810.

Дата отправки: 07.06.2017, 13:04
Вопрос задал: asdf1234 (Посетитель)
Всего ответов: 2
Страница онлайн-консультации »


Консультирует mklokov (6-й класс):

Здравствуйте, asdf1234!
Двоичное представление числа 2810: 101011111010
Код Грея: 111110000111

Консультировал: mklokov (6-й класс)
Дата отправки: 07.06.2017, 14:43
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Гордиенко Андрей Владимирович (Модератор):

Здравствуйте, asdf1234!

Одним из способов преобразования десятичного числа в двоичное является деление этого числа на и запись полученных остатков в обратном порядке. В нашем случае













Следовательно,


Сдвигая полученное число вправо на один бит (при этом младший разряд сдвигаемого числа теряется), будем иметь


Выполним поразрядное сложение полученных чисел по модулю



В нижней строке записан искомый код Грея.

Консультировал: Гордиенко Андрей Владимирович (Модератор)
Дата отправки: 07.06.2017, 14:56
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 191099:

Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:
3. Произвести преобразование кода Грея ZG в двоичное число:
ZG = 10011000101100.

Дата отправки: 07.06.2017, 13:06
Вопрос задал: asdf1234 (Посетитель)
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Гордиенко Андрей Владимирович (Модератор):

Здравствуйте, asdf1234!

Как указано здесь, перевод кода Грея в двоичный код производится по следующему правилу:
1) цифра старшего разряда остаётся без изменения;
2) каждая следующая цифра инвертируется столько раз, сколько единиц ей предшествует в коде Грея.
Следуя этому правилу, для кода Грея получим следующее:
первая цифра (цифра старшего разряда) остаётся без изменений:
вторая цифра инвертируется один раз:
третья цифра инвертируется один раз:
четвёртая цифра инвертируется один раз:
пятая цифра инвертируется два раза:
шестая цифра инвертируется три раза:
седьмая цифра инвертируется три раза:
восьмая цифра инвертируется три раза:
девятая цифра инвертируется три раза:
десятая цифра инвертируется четыре раза:
одиннадцатая цифра инвертируется четыре раза:
двенадцатая цифра инвертируется пять раз:
тринадцатая цифра инвертируется шесть раз:
четырнадцатая цифра инвертируется шесть раз:

Следовательно, искомый десятичный код имеет вид

Консультировал: Гордиенко Андрей Владимирович (Модератор)
Дата отправки: 07.06.2017, 15:48
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 191100:

Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:
4. Синтезировать коды Шеннона-Фено и Хаффмена для указанной ниже группы символов:
Символы Вероятности
Z1 0.05
Z2 0.13
Z3 0.20
Z4 0.15
Z5 0.22
Z6 0.07
Z7 0.08
Z8 0.10


Дата отправки: 07.06.2017, 13:07
Вопрос задал: asdf1234 (Посетитель)
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Коцюрбенко Алексей aka Жерар (Мастер-Эксперт):

Здравствуйте, asdf1234!

Алгоритм Шеннона-Фано работает следующим образом:

1. Упорядочиваем символы по невозрастанию вероятностей.
2. Делим последовательность символов на две группы с примерно равной суммой вероятностей. Для первой группы добавляем справа в код 1, для второй - 0.
3. Повторяем предыдущий шаг для каждой из групп, пока не получим группу из единственного символа.

В данном случае это будет выглядеть так:

СимволыВероятности
Z50.22
Z30.20
Z40.15
Z20.13
Z80.10
Z70.08
Z60.07
Z10.05

Это исходная таблица. Разбиваем её на две группы так, чтобы сумма вероятностей в каждой была по возможности близка к 0.5 и присваиваем первой код 1, а второй - код 0:
СимволыВероятностиКод
Z5,Z3,Z40.22+0.20+0.15=0.571
Z2,Z8,Z7,Z6,Z10.13+0.10+0.08+0.07+0.05=0.430

Теперь разбиваем первую группу на две с суммой вероятностей близкой к 0.57/2=0.285 и присваиваем им коды 11 и 10, а вторую - на две с суммой вероятностей близкой к 0.43/2=0.215 и присваиваем им коды 01 и 00:
СимволыВероятностиКод
Z50.2211
Z3,Z40.20+0.15=0.3510
Z2,Z80.13+0.10=0.2301
Z7,Z6,Z10.08+0.07+0.05=0.2000

Первая из четырёх п олучившихся групп содержит только один символ и дальше не разбивается. Остальные разбиваются надвое аналогичным образом:
СимволыВероятностиКод
Z50.2211
Z30.20101
Z40.15100
Z20.13011
Z80.10010
Z70.08001
Z6,Z10.07+0.05=0.12000

Теперь все группы содержат по одному символу, только последняя - два. Её разбиваем надвое:
СимволыВероятностиКод
Z50.2211
Z30.20101
Z40.15100
Z20.13011
Z80.10010
Z70.08001
Z60.070001
Z10.050000

и на этом построение кода Шеннона-Фано закончено.

Алгоритм Хаффмана работает следующим образом:

1. Упорядочиваем символы по невозрастанию вероятностей.
2. Два символа с наименьшими вероятностями заменяем группой с суммарной вероятностью. Для первого символа группы добавляем слева в код 0, для второго - 1, для остальных символов не добавляем ничего.
3. Повторяем, пока не получим группу, объединяющую все символы.

В данном случае это будет выглядеть так:

СимволыВероятности
Z50.22
Z30.20
Z40.15
Z20.13
Z80.10
Z70.08
Z60.07
Z10.05

Объединяем два последних символа (Z6 и Z1) в одну группу и присваиваем им коды 0 и 1. Остальным символам коды не присваиваем:
СимволыВероятностиКоды
Z50.22
Z30.20
Z40.15
Z20.13
Z80.10
Z70.08
Z6,Z10.07+0.05=0.120,1

Упорядочиваем получившуюся таблицу по убыванию вероятностей:
СимволыВероятностиКоды
Z50.22
Z30.20
Z40.15
Z20.13
Z6,Z10.120,1
Z80.10
Z70.08


и объединяем символы Z8 и Z7, присваивая новой группе коды 0 и 1 (остальные символы по-прежнему не имеют кодов):
СимволыВероятностиКоды
Z50.22
Z30.20
Z40.15
Z20.13
Z6,Z10.120,1
Z8,Z7,0.10+0.08=0.180,1

Упорядочиваем получившуюся таблицу по убыванию вероятностей:
СимволыВероятностиКоды
Z50.22
Z30.20
Z8,Z70.180,1
Z40.15
Z20.13
Z6,Z10.120,1

и объединяем два последних символа (Z2 и Z6,Z1) в одну группу, присвоив им коды 0 и 10,11:
СимволыВероятностиКоды
Z50.22
Z30.20
Z8,Z70.180,1
Z40.15
Z2,Z6,Z10.13+0.12=0.250,10,11

Упорядочиваем получившуюся таблицу по убыванию вероятностей:
Z2,Z6,Z1
СимволыВероятностиКоды
0.250,10,11
Z50.22
Z30.20
Z8,Z70.180,1
Z40.15

и объединяем символы Z8,Z7 и Z4, присваивая новой группе коды 00,01 и 1:
СимволыВероятностиКоды
Z2,Z6,Z10.250,10,11
Z50.22
Z30.20
Z8,Z7,Z40.18+0.15=0.3300,01,1

Упорядочиваем получившуюся таблицу по убыванию вероятностей:
СимволыВероятностиКоды
Z8,Z7,Z40.3300,01,1
Z2,Z6,Z10.250,10,11
Z50.22
Z30.20

и объединяем два последних символа (Z5 и Z3) в одну группу, присвоив им коды 0 и 1:
СимволыВероятностиКоды
Z8,Z7,Z40.3300,01,1
Z2,Z6,Z10.250,10,11
Z5,Z30.22+0.20=0.420,1

Упорядочиваем получившуюся таблицу по убыванию вероятностей:
СимволыВероятностиКоды
Z5,Z30.420,1
Z8,Z7,Z40.3300,01,1
Z2,Z6,Z10.250,10,11

и объединяем символы Z8,Z7,Z4 и Z2,Z6,Z1, присваивая новой группе коды 000,001,01 и 10,110,111:
СимволыВероятностиКоды
Z5,Z30.420,1
Z8,Z7,Z4,Z2,Z6,Z10.33+0.25=0.58000,001,01,10,110,111

Упорядочиваем получившуюся таблицу по убыванию вероятностей:
СимволыВероятностиКоды
Z8,Z7,Z4,Z2,Z6,Z10.58000,001,01,10,110,111
Z5,Z30.420,1

Поскольку осталось только две группы символов, добавляем слева к кодам первой 0, а к кодам второй - 1 и снова разделяем группы на отдельные символы:
СимволыКоды
Z80000
Z70001
Z4001
Z2010
Z60110
Z10111
Z510
Z311

На этом построение кода Хаффмана закончено.

Консультировал: Коцюрбенко Алексей aka Жерар (Мастер-Эксперт)
Дата отправки: 08.06.2017, 05:55
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 191101:

Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:
5. Произвести преобразование десятичного числа D в двоичное и опреде-лить для него код Хэмминга:
D = 83.



Дата отправки: 07.06.2017, 13:08
Вопрос задал: asdf1234 (Посетитель)
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Зенченко Константин Николаевич (Модератор):

Здравствуйте, asdf1234!

8310=10100112
Открываете EXEL.
Строите такую таблицу:

В первой строке номеруете столбцы(1,2,3,....), в стлолбцах, номера которых соответсвуют степени двойки, подкрашиваете фон.
Во вторую строчку в ячейки без фона записываете нужное двоичное число.
В третью и последующие строчки записываете нули и единицы (3)101010..., (4)11001100..., (5)111100001111, начиная с ячеек отмеченных другим фоном.

В столбец L в строчке 3 пишите код =SUMPRODUCT(A$2:K$2;A3:K3), разтягиваете его на строчки 4-6. Это сумма произведений двух массивов расположенных в строчках 2 и 3(в других строчках EXEL автоматически подставит нужный номер строки, при растягивании)

В строке 7 в фоновые ячейки ставите код =MOD(L3;2) , для ячейки А7, для В7 код будет такой =MOD(L4;2), в D7 - такой =MOD(L5;2)

Все EXEL автоматич ески посчитает Вам код Хемминга. Добавил файл для экспериментов 170607.xls (24.5 кб)
smile
Удачи!

Консультировал: Зенченко Константин Николаевич (Модератор)
Дата отправки: 07.06.2017, 15:54
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 191102:

Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:
6. Определить значение переданного с использованием кода Хэмминга числа. При передаче кода имела место однократная ошибка:
1 0 1 1 0 1 1 0 0 0 0



Дата отправки: 07.06.2017, 13:09
Вопрос задал: asdf1234 (Посетитель)
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Зенченко Константин Николаевич (Модератор):

Здравствуйте, asdf1234!

делаете тоже, что вопросом раньше, строите таблицу:

В столбце L, получается двоичный номер сбойного бита, если читать снизу-вверх,
Для эксперементов с поиском бита прикрепляю файл 170607.xls (24.5 кб)
В нем вопрос 191102 и 191101.

Удачи!

Консультировал: Зенченко Константин Николаевич (Модератор)
Дата отправки: 07.06.2017, 16:24
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


В избранное