На этом форуме отвечают на конкретные вопросы. Фраза «я не понимаю, как решать» — это не вопрос. На вопрос «как решить задачу №X» вас отошлют к материалам сайта kpolyakov.spb.ru. За бессвязный поток слов и неспособность формулировать свои мысли — бан.

Если у вас не сходится ответ на какую-то задачу, пожалуйста сразу представляйте свое «правильное» решение.
Программы "заворачивайте" в тэг [pre2]...[/pre2], при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "[i]" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом.

Для регистрации на форуме щелкните по ссылке «Вход-регистрация» вверху страницы. В открывшееся окошко «ник» введите свою фамилию на русском языке (например, Иванов). В окошко «пароль» введите придуманный вами пароль, состоящий из латинских букв и цифр. Поставьте галочку в окошке «зарегистрироваться, я новый участник» и нажмите кнопку «ОК».

АвторСообщение



Не зарегистрирован
ссылка на сообщение  Отправлено: 12.04.20 15:47. Заголовок: Алгоритм № 13


Всем доброго времени суток!
Помогите разобраться с алгоритмом.
Задача:
Каждый сотрудник предприятия получает электронный пропуск, на котором записаны личный код сотрудника и срок действия пропуска. Личный код состоит из 10 символов, каждый из которых может быть одной из 26 заглавных латинских букв или 10 цифр. Для записи кода на пропуске используют посимвольное кодирование, все символы кодируют одинаковым минимально возможным количеством битов. Срок действия записывается как номер года (число от 0 до 50, означающее год от 2000 до 2050) и номер месяца (число от 1 до 12). Номер года и номер месяца записаны на пропуске как двоичные числа, каждое из них занимает минимально возможное количество битов. Вся информация на пропуске упакована так, чтобы
занимать минимально возможное количество байтов. Сколько байтов занимает вся информация на пропуске? В ответе запишите только целое число – количество байтов.
*********
Понятно, что первая часть пропуска 60 бит (10+26=36; ,берем 2 в 6-ой; 10*6 = 60). При переводе берем 8 Байт, т. к. 7 - не достаточно.
Правильно ли я понял, что вторая часть пропуска с датой считается так: переводим оба числа в двоичную, получается 50=110010 и 12=1100. Далее считаем двоичные разряды и получаем 10 бит, вместится в 2 Байта, итого всего будет 10 Байт?
Что-то меня мучают сомнения на счет правильности алгоритма...

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 3 [только новые]





Сообщение: 1
ссылка на сообщение  Отправлено: 12.04.20 16:56. Заголовок: Да, исправляюсь, 60+..


Да, исправляюсь, 60+10 =70, значит всего 9 Байт, меня смущает правильность расчетов второй части пропуска

Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 227
ссылка на сообщение  Отправлено: 12.04.20 17:00. Заголовок: Ну логика в общем ве..


Ну логика в общем верная.

Для записи чисел от 0 до 50 нужно не менее 6 бит
Для записи чисел от 0 до 12 нужно не менее 4 бит

НО вы поторопились с упаковкой личного кода в байты, это задачей не требуется (оставим 60 бит)

60+6+4=70 бит ИЛИ 9 Байт

Discussio mater veritas est Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 2
ссылка на сообщение  Отправлено: 12.04.20 20:59. Заголовок: Спасибо большое, сом..


Спасибо большое, сомнения развеяны

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 1683
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет