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

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

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

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





Не зарегистрирован
ссылка на сообщение  Отправлено: 17.04.16 21:36. Заголовок: Кодирование записи (№ 263)


Здравствуйте!
№ 263 В школьной базе данных хранятся записи, содержащие информацию об учениках:
<Фамилия> – 16 символов: русские буквы (первая прописная, остальные строчные),
<Имя> – 12 символов: русские буквы (первая прописная, остальные строчные),
<Отчество> – 16 символов: русские буквы (первая прописная, остальные строчные),
<Год рождения> – числа от 1992 до 2003.
Каждое поле записывается с использованием минимально возможного количества бит. Определите минимальное количество байт, необходимое для кодирования одной записи, если буквы е и ё считаются совпадающими.

Cудя по ответу (28 байт), мощность алфавита для формирования каждого поля ФИО берут 32 символа, хотя в скобках указано, что используются как прописные, так и строчные буквы (первая прописная, остальные строчные), поэтому я увеличила мощность в два раза (N=32*2=64). Почему в итоге не нужно учитывать прописные буквы в общей мощности алфавита? И зачем тогда "загадочные" пояснения в скобках?

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


Администратор




Сообщение: 1097
ссылка на сообщение  Отправлено: 18.04.16 18:45. Заголовок: Agch пишет: Почему в..


Agch пишет:
 цитата:
Почему в итоге не нужно учитывать прописные буквы в общей мощности алфавита?

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

___________________________________________________
Имей мужество пользоваться собственным умом. (И. Кант)
Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 1
ссылка на сообщение  Отправлено: 19.04.16 01:02. Заголовок: Спасибо, Константин ..


Спасибо, Константин Юрьевич!

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



Сообщение: 1
ссылка на сообщение  Отправлено: 30.04.16 11:46. Заголовок: Задача 263


Текстовые поля кодируется (16+16+12)*5= 220бит
На год рождения- старшая цифра имеет 2 значения (1 или 2), кодируется 1 битом, вторая и третья могут быть либо 9, либо 0, кодируются 1 битом, последняя может принимать значения 0,..,9, для её кодирование необходимо 4 бита. Всего для записи 220+1+1+1+4=227 бит или 29 байт. С ответом не сходится. Что нет так? Подскажите, пожалуйста. Лариса

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




Сообщение: 1118
ссылка на сообщение  Отправлено: 30.04.16 12:12. Заголовок: Leovan@yandex.ru пиш..


Leovan@yandex.ru пишет:
 цитата:
На год рождения- старшая цифра имеет 2 значения (1 или 2), кодируется 1 битом, вторая и третья могут быть либо 9, либо 0, кодируются 1 битом, последняя может принимать значения 0,..,9, для её кодирование необходимо 4 бита. Всего для записи 220+1+1+1+4=227 бит или 29 байт. С ответом не сходится. Что нет так?

Год рождения кодируется как одно число, а не по одной цифре.

___________________________________________________
Имей мужество пользоваться собственным умом. (И. Кант)
Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 2
ссылка на сообщение  Отправлено: 01.05.16 15:54. Заголовок: Спасибо ..


Спасибо

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





Сообщение: 15
ссылка на сообщение  Отправлено: 04.05.21 11:56. Заголовок: Получается 34 вместо 28


То, что для хранения символа достаточно и 32 комбинаций я и так понял, но почему не выходит нормальный ответ-то?
 
def Bits(Ch):
if Ch == 0: return 1
N = 0
while Ch > 0:
Ch //= 2
N += 1
return N
def Bytes(Bits): return (Bits + 7) // 8
def KBytes(B): return (B + 1023) // 1024

print("Ответ Z263:", Bytes(Bits(32) * (16 + 16 + 12) + Bits(2003 - 1992 + 1)))


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





Сообщение: 16
ссылка на сообщение  Отправлено: 04.05.21 14:35. Заголовок: Оказалась банальная ..


Оказалась банальная ошибка в самом Bits. Правильнее было:
 
def Bits(Ch):
if Ch == 1: return 1
Ch -= 1
N = 0
while Ch > 0:
Ch //= 2
N += 1
return N


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

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