Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 10.03.2020
Сообщений: 5

Кодировка словаря битов в байте/

10.03.2020, 21:09. Показов 1648. Ответов 7

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Прохожу курс Java на Youtube.
В одной из лекций есть пример кодировки словаря полов в одном байте: null(нету пола) - 00, F(женский) - 10, M(мужской) - 01.
1 человек - 3 значения - 00 - null, 10 - F, 01 - M, - нужно использовать 2 бита чтобы закодировать пол 1-го человека.
2 человека - 9 значений - null null, null F, null M, F null, F M, F F, M null, M N, M M - нужно 4 бита.
3 человека - 27 значений - null null null, null null F, итд. - нужно 5 битов по словам лектора, ссилаясь на ближайшую степень двойки 32 = 2^5. Степень, так понимаю, определяет количество битов.
4 человека - 81 значения - null null null null, null null null F, итд. - нужно 7 битов по словам лектора, ссилаясь на ближайшую степень двойки 128 = 2^7. Степень, опять, так понимаю, определяет количество битов.

В моем понимании пол кодируем 2-я битами. И если все женщины - то будет 10 10 10 и того 6 битов( + 2 бита свободних) в одном байте.

Видео лекции https://youtu.be/Qh9uiHBztbA?t=1978 Смотреть с 33ей минуты.
Спасибо.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.03.2020, 21:09
Ответы с готовыми решениями:

Реверс битов в байте
Реализую реверс битов в байте. На форуме есть темы об этом. Нашел одну. Прекрасный код, который работает. Но хотелось бы узнать как он...

Сколько битов в байте?
Всем привет! подскажите пожалуйста код программы, которая показывает сколько битов в байте! заранее спасибо

Проверка битов в байте
Добрый день ) Есть функция которая возвращает массив байт, нужно в этом массиве выбрать определённый байт и проверить эго Что значит...

7
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
10.03.2020, 21:23
в чем вопрос то?
0
0 / 0 / 0
Регистрация: 10.03.2020
Сообщений: 5
10.03.2020, 21:32  [ТС]
Сорри, почему-то не могу изменить пост.
Вопрос: Как мы можем сохранить пол троих человек в виде 5 бит (или пол 4ех человек - 7 битами), если в словаре пол обозначаем 2-я битами ? В моем понимании чтобы закодировать пол троих человек нужно 6 битов, по 2 для каждого.
0
485 / 411 / 126
Регистрация: 23.05.2016
Сообщений: 1,653
10.03.2020, 21:52
Двумя битами можно закодировать четыре различных состояния: {00,01,10,11}
Можно закодировать и три, но с некоторой избыточностью, т.к. четвертое состояние не используется.

Если у нас два человека, то требуется уже 32 состояний. Трех бит нам не хватит, т.к. тремя битами кодируется лишь восемь различных состояний, а нам нужно девять, поэтому требуется четыре бита. Обратите внимание, рассуждение "два бита на человека" уже на этом шаге неправильное, но вы по аналогии так подумали и продолжили дальше рассуждать ошибочно.

Итак, для двух человек требуется не менее четырех бит. Но четырьмя битами можно закодировать шестнадцать состояний, т.е. пять возможных состояний не используются.

Далее, для трех человек требуется предусмотреть 33 = 27 состояний, четыре бита мало, а пять вполне подойдет, т.к. пятью битами можно закодировать тридцать два состояния.

И т.д.

Видео не смотрел.

Вопрос не привязан к какому-либо языку программирования, относится к комбинаторике, наверное.
1
0 / 0 / 0
Регистрация: 10.03.2020
Сообщений: 5
10.03.2020, 22:33  [ТС]
Sindbad_M, спасибо за ответ.
Цитата Сообщение от Sindbad_M Посмотреть сообщение
Если у нас два человека, то требуется уже https://www.cyberforum.ru/cgi-bin/latex.cgi?3^2 состояний. Трех бит нам не хватит, т.к. тремя битами кодируется лишь восемь различных состояний, а нам нужно девять, поэтому требуется четыре бита. Обратите внимание, рассуждение "два бита на человека" уже на этом шаге неправильное, но вы по аналогии так подумали и продолжили дальше рассуждать ошибочно.
Почему на этапе двух человек рассуждение "два бита на человека" не работает? 2 человека x 2 бита = 4 бита чтобы закодировать пол двух человек. И здесь могу представить как это ето будет закодировано. На пример кодируем пол F и M, выходит: 10 01 11 11 так как, F - 10, M - 01, 11 неиспользованное состояние.

Цитата Сообщение от Sindbad_M Посмотреть сообщение
Далее, для трех человек требуется предусмотреть https://www.cyberforum.ru/cgi-bin/latex.cgi?3^3 = 27 состояний, четыре бита мало, а пять вполне подойдет, т.к. пятью битами можно закодировать тридцать два состояния.
Я понимаю, что пятью битами можно закодировать тридцать два состояния. Но в принятой кодировке идет 2 бита на представления одного состояния(пола). Как будет выглядеть битовое представление полов F(10) F(10) M(01) на пятью битах? этого я не могу понять

Да, извините, раздел выбрал ошибочно.
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
10.03.2020, 22:59
Лучший ответ Сообщение было отмечено justasimpleman как решение

Решение

шо как. 32 возможных состояния для 5 бит. 3 человека. У каждого может быть 3 состояния (N, F, M)
00000 - NNN
00001 - NNF
00010 - NNM
00011 - NFN
и т.д.
0
0 / 0 / 0
Регистрация: 10.03.2020
Сообщений: 5
11.03.2020, 00:36  [ТС]
xoraxax, что-то я не в ту сторону думал
Все понял
0
485 / 411 / 126
Регистрация: 23.05.2016
Сообщений: 1,653
11.03.2020, 10:00
Цитата Сообщение от justasimpleman Посмотреть сообщение
Почему на этапе двух человек рассуждение "два бита на человека" не работает?
Потому, что это вообще неправильное рассуждение.

Моя любимая задача для школьников начальных классов:
1. Убедится, что школьник знает, что такое квадрат, как найти площадь и периметр квадрата.
2. Барабанная дробь, задача: Площадь квадрата равна 16 см2, найти длину стороны.

99 человек из 100 решат так: 16 / 4 = 4 (см). Почему это неправильное решение, ответ-то правильный?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.03.2020, 10:00
Помогаю со студенческими работами здесь

Разворот порядка битов в байте
С клавиатуры вводится целое число размером в 1 байт (unsigned char = 0..255). Необходимо развернуть порядок битов наоборот в этом числе и...

Смена порядка битов в байте
Доброго времени суток!! У меня возник вопрос: как в байте :110001 сменить бити так что бы получилось : 100011 то есть все биты...

Циклический сдвиг битов в байте
Привет. Мне нужно в байте (unsigned char) произвести циклический сдвиг. Как я понимаю >> и << это не циклический сдвиг. Но как...

Порядок битов в байте QSerialPort
Здравствуйте, подскажите каким образом можно изменить порядок передаваемых битов через COM порт используя QSerialPort, так например при...

Установка конкретных битов в байте
Привет народ! Необходимо в байт записывать конкретные биты. Причем данные еще разбиты на 4 кадра. Допустим 1 байт = 8 бит = 4 кадра по 2...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru