LINUX.ORG.RU
решено ФорумTalks

Как решаются подобные задачи?


1

1

1) Житель острова Крит вместо цифр использовали следующие обозначения клац

Число 31214 выглядит так клац

a) узнайте минимальную длину бинарных слов которое достаточно для кодирования и раскодирования символов.

б) посчитайте в байтах объём информации который содержится в письме числа 31214

Я не прошу чтобы за меня решили. Мне достаточно объяснения.

★★★★★

Первая ассоциация — теория информации: оптимальный префиксный код. Хотя в данном случае, да, можно проще.

Sadler ★★★
()
Последнее исправление: Sadler (всего исправлений: 2)

Я не прошу чтобы за меня решили. Мне достаточно объяснения.

Тыц :)

quickquest ★★★★★
()

б) посчитайте в байтах объём информации который содержится в письме числа 31214

Даже вопрос нормально сформулировать не могут.

geekless ★★
()
Последнее исправление: geekless (всего исправлений: 1)
Ответ на: комментарий от ziemin

Объясняю. Допустим, алфавит: a-1 b-10 c-100 d-1000 e-10000

Допустимые варианты - это

eeedddcba

Недопустимые -

abcde

То есть есть ограничение на порядок следования символов, за счет чего количество информации принципиально иное.

keyran ★★
()
Ответ на: комментарий от note173

Возможно, я что-то перепутал, но согласно википедии

В непозиционных системах счисления величина, которую обозначает цифра, не зависит от положения в числе. При этом система может накладывать ограничения на положение цифр, например, чтобы они были расположены в порядке убывания.

Что и показано на второй ссылке.

keyran ★★
()
Ответ на: комментарий от ziemin

Да. Смотри сам.

Число - 31214

Запись - три значка, означающих 10000, один, означающий 1000, два, означающих 100, один 10, четыре по одному.

Аналогия видна?

keyran ★★
()
Ответ на: комментарий от ziemin

Хорошо. Но здесь они неприменимы по причине того, что в сообщении переставлять местами символы нельзя, иначе его суть изменится. Здесь - можно.

keyran ★★
()
Ответ на: комментарий от keyran

Хорошо. Но здесь они неприменимы по причине того, что в сообщении переставлять местами символы нельзя, иначе его суть изменится. Здесь - можно.

Но здесь они неприменимы ... Здесь - можно.

Быстрей разупоряйся - завтра понедельник :)

ziemin ★★
()
Ответ на: комментарий от ziemin

А по делу сказать есть что?

Возьмем простейший случай. Алфавит - 1 и 0

Если имеет значение позиция символов, сообщение 10011100 содержит ровно 8 бит информации. Если позиция значения не имеет, то важно только то, что в сообщении 4 нуля и 4 единицы, и требуется только 6 бит - 3 на количество нулей и 3 на количество единиц.

Пример ясен?

keyran ★★
()

Мне достаточно объяснения.

Я сам подумать попробуй. Закодировать ты можешь любое десятичное число длиной не более 5 цифр. Нуля наверно есть (пустое сообщение). И того 10^5 вариантов. Ну а дальше логарифм по основанию 2.

ival ★★
()
Ответ на: комментарий от ziemin

Я показал отличие количества информации при позиционной и непозиционной записи. У ТС она непозиционная, это видно из второй ссылки. Ты дал формулы для позиционной. Ergo, твои формулы неприменимы в случае ТС.

keyran ★★
()
Ответ на: комментарий от ziemin

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

Что такое количество информации?

За единицу количества информации принимается такое количество информации, которое содержится в информационном сообщении, уменьшающем неопределенность знания в два раза.

Приняв это определение, посмотрим, как увеличивается информация в ЗАПИСИ при добавлении к этой записи одного символа.

В случае неструктурированной записи, действительно, оно увеличивается на ceil(log_2(5)) бит.

В случае структурированной, как у ТС записи, новый элемент может быть либо текущим, либо следующим за ним. То есть информация увеличивается только на один бит.

keyran ★★
()
Ответ на: комментарий от keyran

То есть информация увеличивается только на один бит.

Отнюдь. А какой стартовый элемент, чтоб считать его текущим?

ziemin ★★
()

обычная десятичная система счисления. Просто вместо 40 пишут ☣☣☣☣, здесь ☣ значит: «десятки».

Что-бы получить число символов, нужно сложить все ЦИФРЫ, например 3+1+2+1+4 == 11

drBatty ★★
()
Ответ на: комментарий от ziemin

Исправляюсь. Неточно описал. Текущий элемент действительно кодируется ceil(log_2(n)) битами информации. Пусть этот элемент - k<n. Но тогда следующий за ним, новый элемент, может быть только элементом >=k, то информация, данная следующим элементом, будет составлять только ceil(log_2(n-k+1)) бит.

keyran ★★
()
Ответ на: комментарий от keyran

Приняв это определение, посмотрим, как увеличивается информация в ЗАПИСИ при добавлении к этой записи одного символа.

при добавлении одного символа количество информации увеличивается неравномерно, и его так просто не посчитать. Смотря какое число, и какой символ. Можно посчитать группируя символы в метасимволы. Например ☣☣☣☣ == 40, а ☣☣☣☣☣ == 50. Тогда можно посчитать энтропию «4» и «5», она равна -log₂(1/10) (в битах).

drBatty ★★
()
Последнее исправление: drBatty (всего исправлений: 1)
Ответ на: комментарий от drBatty

пояснение: после девяти ☣, энтропия ☣ равна 0, ибо мы знаем, что чисел с 10ю десятками не бывает. После восьми ☣, равна 1/10, ибо только в каждом десятом числе есть ровно 9 десяток.

drBatty ★★
()
Ответ на: комментарий от keyran

ceil

откуда у тебя это взялось? Энтропия совсем не обязана быть целой. И да, она совсем никак не зависит от целой части логарифма. Да ещё и двоичного. Она зависит от дробной части десятичного логарифма, т.к. СС десятичная.

drBatty ★★
()
Ответ на: комментарий от ziemin

первый элемент задан точно. Второй - разница между тем, что должно и предыдущим. И так далее. То есть если следующий =k, то кодируется 0, если k+i, то i.

keyran ★★
()
Ответ на: комментарий от drBatty

Так я об этом и говорю. Да, так можно, и количество информации при таком кодировании меньше, чем при кодировании каждого знакоместа ln_2(n) битами. А ceil - для компьютерного кодирования, там все целое.

keyran ★★
()
Ответ на: комментарий от keyran

Да, так можно, и количество информации при таком кодировании меньше, чем при кодировании каждого знакоместа ln_2(n) битами.

столько же. Если считать ценность одного «знакоместа» целиком.

А ceil - для компьютерного кодирования, там все целое.

энтропия в битах целая только если есть ровно 2^n равновероятных варианта. В общем случае энтропия дробная. Обычно она ещё и трансцендентная. Т.к. на практике нужно много кодировать, то и кодируют скажем 2 символа по 1.5 бита, тремя битами.

drBatty ★★
()
Ответ на: комментарий от keyran

от предыдущих НЕ зависит. Пример: 123456? Как зависит "?" от предыдущих? Никак.

Зато знакоместо зависит само от себя, ибо оно из нескольких определённых символов.

drBatty ★★
()
Ответ на: комментарий от drBatty

из нескольких определённых символов.

Вот именно, оно зависит тем, что эти определенные символы определены предыдущими. То есть если взять нотацию, как я приводил выше, то к записи fffeedddcc можно добавить только c, b и a, но нельзя f, e и d. Вот таким образом зависит.

keyran ★★
()
Ответ на: комментарий от keyran

то к записи fffeedddcc можно добавить только c, b и a, но нельзя f, e и d. Вот таким образом зависит.

все меньше c можно добавлять, с равной вероятностью, от 0 до 9 штук. И это ни от чего не зависит. А вот саму c можно добавлять только от 0 до 7 штук, потому-что 2 уже есть. Энтропия больше c равна 0, ибо их вероятность известна, и равна тоже 0.

Энтропия количества символов c в данном случае ровно 3 бита, ибо 2³ вариантов(равновероятных и независимых).

drBatty ★★
()
Ответ на: комментарий от drBatty

Так. Верно. Но в запись мы добавляем лишь один символ. Это может быть c, b, a. В запись ffeedd можно добавить уже d, c, b, a. То есть количество информации, требуемой для записи одного следующего символа зависит от того, какие символы были ранее.

Мы ведь сейчас не о кодировании самого числа говорим, а о его записи в системе того жителя Крита.

keyran ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.