Сейчас на форуме: zds, kris_sexy (+7 невидимых)

 eXeL@B —› Крэки, обсуждения —› Помогите с задачами
Посл.ответ Сообщение


Ранг: 303.7 (мудрец), 4thx
Активность: 0.190
Статус: Участник
tPORt Manager

Создано: 17 октября 2006 09:14
· Личное сообщение · #1

Кто хорошо знает информатику (особенно первые несколько уроков в школе) помогите решить задачи:
1. В школьной библиотеке 16 стилажей с книгами, на каждом 8 полок. Библиотекарь сообщил Пете, что нужная ему книга находится на 5 стилаже, на 3-ей сверху полке. Какое кол-во информации библиотекарь передал Пете.

2. В корзине лежат 32 клубка шерсти, среди них 4 красных, сколько инфы несёт сообщение о том, что достали клубок красной шерсти.

3. В коробке 64 цветных карандаша. Сообщение, о том, что достали белый карандаш несёт 4 бита инфы, сколько белых карандашей в коробке.

Это не мне, одной знакомой, заранее спасибо.




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 17 октября 2006 09:35
· Личное сообщение · #2

Рассуждая логически, можно предположить, что:
1. 16 стелажей кодируется 4-мя битами+8 полок-еще 3 бита. Итого 7 бит. Можно учитавать еще полка сверху\снизу-тогда плюс еще бит, итого байт.

2. Опять же если предположить, что остальные 28 клубков могут быть ВСЕ разных цветов, ибо в условии нифига не сказано, то цвет будет кодироваться 5-ю битами. Сталобыть переданная инфа-5 бит.

3. Вопрос не корректный.




Ранг: 303.7 (мудрец), 4thx
Активность: 0.190
Статус: Участник
tPORt Manager

Создано: 17 октября 2006 09:39
· Личное сообщение · #3

Ara пишет:
3. Вопрос не корректный.

Блин, чё детям задают на информатике в школе... Слух, а там вроде есть какая-то формула для высчитывания кол-ва информации, ты не занешь? Просто надо ещё решение, информатичка, насколько знаю, злая и кусается..




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 17 октября 2006 10:00 · Поправил: Ara
· Личное сообщение · #4

А кол-во информации и объем в данном случае-это разные вещи?

Поправлено: похоже разные
ru.wikibooks.org/wiki/Программирование



Ранг: 13.4 (новичок)
Активность: 0.010
Статус: Участник

Создано: 17 октября 2006 10:02
· Личное сообщение · #5

saratov.fio.ru/listeners/works/021/8/pages/veroy.html

Мож поможет




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 17 октября 2006 10:06
· Личное сообщение · #6

Да, похоже эти формулы Вроде теорию вероятности в школе не изучали раньше?



Ранг: 158.4 (ветеран), 123thx
Активность: 0.140.49
Статус: Участник

Создано: 17 октября 2006 10:08
· Личное сообщение · #7

Посмотри на васме упаковщики (первая часть, по-моему). Там в формуле расчета энтропии есть формула расчета кол-ва информации (через натуральный логарифм, точно не помню).



Ранг: 158.4 (ветеран), 123thx
Активность: 0.140.49
Статус: Участник

Создано: 17 октября 2006 10:11
· Личное сообщение · #8

Ara пишет:
Можно учитавать еще полка сверху\снизу-тогда плюс еще бит,

А вот это уже не нужно - будет избыточность. Восемь полок однозначно кодируются 3-мя битами...



Ранг: 17.7 (новичок)
Активность: 0.010
Статус: Участник

Создано: 17 октября 2006 11:52
· Личное сообщение · #9

задачки такие - это самое начало теории информации. преподается она обычно курсе на втором-третьем Вот учебник по этой теме www.msclub.ce.cctpu.edu.ru/bibl/TI/Index.html

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




Ранг: 199.6 (ветеран), 12thx
Активность: 0.10
Статус: Участник
www.uinc.ru

Создано: 17 октября 2006 13:29
· Личное сообщение · #10

> Вроде теорию вероятности в школе не изучали раньше?

Я изучал в 7-8 классе (именно на описанном уровне). Потом естесно в интституте, на втором курсе, но там уже без вяся/петя - сухие цифры и формулы




Ранг: 631.1 (!), 62thx
Активность: 0.370.01
Статус: Участник
Автор VB Decompiler

Создано: 17 октября 2006 13:47 · Поправил: GPcH
· Личное сообщение · #11

Sax0n пишет:
Я просто считаю, что средневзятый программер может спокойно прожить без этих знаний, а уж школьник и подавно.


Без этих знаний невозможно оптимально выбирать типы данных для переменных что ведет к черезмерным требованиям к оперативной памяти. Горе программист тот, который для хранения 16000 объектов пишет
[HIGHLIGHT=cpp]
int var1;
[/HIGHLIGHT]
И ведь все так пришут, лень ведь заменить на:
[HIGHLIGHT=cpp]
short var1;
[/HIGHLIGHT]
В рамка мелких прог это слабозаметно но в больших прогах где переменных тысячи сразу программа начинает жрать чрезмерно памяти. Особенно актуально для старых компов. Да и операции над меньшим числом байт производятся быстрее и прога не тормозит. Правда оптимизация до БИТ имхо излишня - она наоборот усложняет

-----
Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе!





Ранг: 199.6 (ветеран), 12thx
Активность: 0.10
Статус: Участник
www.uinc.ru

Создано: 17 октября 2006 14:46 · Поправил: DrGolova
· Личное сообщение · #12

Операции с native типами всегда быстрее. Так что в данном случае int предпочтителен - и быстрее будет и кода меньше (нет префикса 0x66). А память нынче дешевая, да и компилятор по умолчанию выравняет все переменные до размера int'а Вот если бы писалось __int64 вместо int, тогда да - КГ/АМ.




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 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.

фладим потиху.... но, просто, не стерпел прочитав "горе програмисты делают так...."




Ранг: 199.6 (ветеран), 12thx
Активность: 0.10
Статус: Участник
www.uinc.ru

Создано: 17 октября 2006 17:26
· Личное сообщение · #14

> struct blah
> {
> int first32;
> byte temp;
> int second32;
> };

Так пишут в школе А на работе членов структуры группируют по убыванию размера типа - сначала указатели, потом лонги, потом инты, потом остальная мелочь. тогда точно будет под любой платформой работать без проблем с невыровненным доступом.


 eXeL@B —› Крэки, обсуждения —› Помогите с задачами
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати