![]() |
eXeL@B —› Крэки, обсуждения —› Помогите с задачами |
Посл.ответ | Сообщение |
|
Создано: 17 октября 2006 09:14 · Личное сообщение · #1 Кто хорошо знает информатику (особенно первые несколько уроков в школе) помогите решить задачи: 1. В школьной библиотеке 16 стилажей с книгами, на каждом 8 полок. Библиотекарь сообщил Пете, что нужная ему книга находится на 5 стилаже, на 3-ей сверху полке. Какое кол-во информации библиотекарь передал Пете. 2. В корзине лежат 32 клубка шерсти, среди них 4 красных, сколько инфы несёт сообщение о том, что достали клубок красной шерсти. 3. В коробке 64 цветных карандаша. Сообщение, о том, что достали белый карандаш несёт 4 бита инфы, сколько белых карандашей в коробке. Это не мне, одной знакомой, заранее спасибо. ![]() |
|
Создано: 17 октября 2006 09:35 · Личное сообщение · #2 Рассуждая логически, можно предположить, что: 1. 16 стелажей кодируется 4-мя битами+8 полок-еще 3 бита. Итого 7 бит. Можно учитавать еще полка сверху\снизу-тогда плюс еще бит, итого байт. 2. Опять же если предположить, что остальные 28 клубков могут быть ВСЕ разных цветов, ибо в условии нифига не сказано, то цвет будет кодироваться 5-ю битами. Сталобыть переданная инфа-5 бит. 3. Вопрос не корректный. ![]() |
|
Создано: 17 октября 2006 09:39 · Личное сообщение · #3 |
|
Создано: 17 октября 2006 10:00 · Поправил: Ara · Личное сообщение · #4 |
|
Создано: 17 октября 2006 10:02 · Личное сообщение · #5 |
|
Создано: 17 октября 2006 10:06 · Личное сообщение · #6 |
|
Создано: 17 октября 2006 10:08 · Личное сообщение · #7 |
|
Создано: 17 октября 2006 10:11 · Личное сообщение · #8 |
|
Создано: 17 октября 2006 11:52 · Личное сообщение · #9 задачки такие - это самое начало теории информации. преподается она обычно курсе на втором-третьем ![]() Интересно для какого класса были эти задачки... Я просто считаю, что средневзятый программер может спокойно прожить без этих знаний, а уж школьник и подавно. ![]() |
|
Создано: 17 октября 2006 13:29 · Личное сообщение · #10 |
|
Создано: 17 октября 2006 13:47 · Поправил: GPcH · Личное сообщение · #11 Sax0n пишет: Я просто считаю, что средневзятый программер может спокойно прожить без этих знаний, а уж школьник и подавно. Без этих знаний невозможно оптимально выбирать типы данных для переменных что ведет к черезмерным требованиям к оперативной памяти. Горе программист тот, который для хранения 16000 объектов пишет [HIGHLIGHT=cpp] int var1; [/HIGHLIGHT] И ведь все так пришут, лень ведь заменить на: [HIGHLIGHT=cpp] short var1; [/HIGHLIGHT] В рамка мелких прог это слабозаметно но в больших прогах где переменных тысячи сразу программа начинает жрать чрезмерно памяти. Особенно актуально для старых компов. Да и операции над меньшим числом байт производятся быстрее и прога не тормозит. Правда оптимизация до БИТ имхо излишня - она наоборот усложняет ----- Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе! ![]() |
|
Создано: 17 октября 2006 14:46 · Поправил: DrGolova · Личное сообщение · #12 |
|
Создано: 17 октября 2006 14:49 · Поправил: s0larian · Личное сообщение · #13 GPcH пишет: Без этих знаний невозможно оптимально выбирать типы данных для переменных что ведет к черезмерным требованиям к оперативной памяти. Горе программист тот, который для хранения 16000 объектов пишет "int var1;" Вот же ёлки! Современные процессоры не читают машинное слово (или пол) с любого адреса. Например 32-битный PowerPC-compatible core посто не прочитает пол слова (2 байта) из адреса который не делится на 2 или полное слово (32 бита) из адреса неделимого на 4. Именно по этому С компиллеры упаковывавают (padding) поля в структуре. Пример: [HIGHLIGHT=C]struct blah { int first32; byte temp; int second32; };[/HIGHLIGHT] тут на "temp" ты всё равно потерял три байта. Ну а если ты заставишь компилер упаковать всё плотно, то при обращении к second32 получишь код с несколькими инструкциями которые читают два полных слова а потом складывают и двигают (bit shift), а это далеко не оптимально. Кто-нить, думаю, чичас скажет, что мол несколько операций чтения - это тоже плохо... да, не супер, но, на свмом деле, по шине будет прочитана целая cache line, и все последующие операции будут происходить буквально за цикл, прямо из L1 cache. фладим потиху.... но, просто, не стерпел прочитав "горе програмисты делают так...." ![]() ![]() |
|
Создано: 17 октября 2006 17:26 · Личное сообщение · #14 > struct blah > { > int first32; > byte temp; > int second32; > }; Так пишут в школе ![]() ![]() |
![]() |
eXeL@B —› Крэки, обсуждения —› Помогите с задачами |