Палимпсестные коды
Apr. 4th, 2015 08:22 pmЕсли есть двоичный носитель информации, биты которого можно изменять только в одну сторону (например, из 0 в 1), то можно ли придумать код, позволяющий писать на этом носителе произвольные данные не однажды, а большее количество раз, чтобы суммарный объем этих данных превосходил объем носителя?
Для алфавита из четырех символов - A, B, C, D - выберем следующие трехбитные коды для первой записи:
000 - A
001 - B
010 - C
100 - D
Если в той позиции, куда мы хотим записать что-то повторно, был символ A, то нет проблем.
Если же мы хотим сделать B из C или D, то логично будет назначить для "вторичного B" код 110. Аналогично с "вторичными" C и D. Тогда для вторичного A остается код 111, итого
000 - A
001 - B
010 - C
011 - D
100 - D
101 - C
110 - B
111 - A
Таким образом мы тратим 3 бита, позволяя записывать 2 бита дважды - уже экономия.
Патент 1982 года показывает, что можно повторно записать 26 символов в 7 битах. До сих пор неизвестно, существует ли 7-битный код для 27 символов.
Для алфавита из четырех символов - A, B, C, D - выберем следующие трехбитные коды для первой записи:
000 - A
001 - B
010 - C
100 - D
Если в той позиции, куда мы хотим записать что-то повторно, был символ A, то нет проблем.
Если же мы хотим сделать B из C или D, то логично будет назначить для "вторичного B" код 110. Аналогично с "вторичными" C и D. Тогда для вторичного A остается код 111, итого
000 - A
001 - B
010 - C
011 - D
100 - D
101 - C
110 - B
111 - A
Таким образом мы тратим 3 бита, позволяя записывать 2 бита дважды - уже экономия.
Патент 1982 года показывает, что можно повторно записать 26 символов в 7 битах. До сих пор неизвестно, существует ли 7-битный код для 27 символов.
no subject
Date: 2015-04-05 06:47 am (UTC)no subject
Date: 2015-04-05 07:03 am (UTC)no subject
Date: 2015-04-05 08:03 am (UTC)no subject
Date: 2015-04-05 04:41 pm (UTC)no subject
Date: 2015-04-05 04:49 pm (UTC)no subject
Date: 2015-04-05 05:04 pm (UTC)no subject
Date: 2015-04-05 05:07 pm (UTC)no subject
Date: 2015-04-05 05:12 pm (UTC)А как тогда они находят конец записанного участка? Сканируют всю поверхность? (Ну, или часть, предназначенную для оглавления? Или двоичный поиск?)
Но тогда тем более, твой код в чистом виде. Или там технически невозможно один бит выжечь, а не целый блок?
no subject
Date: 2015-04-05 05:37 pm (UTC)Поверх этого идут корректирующие коды (разные для аудио и данных), так что на оптических носителях палимпсестным кодам ничего не светит. Возможно, на флеше это можно как-то использовать, чтобы вдвое снизить частоту необходимых стираний, и тем самым заметно ускорить запись.
no subject
Date: 2015-04-05 06:14 pm (UTC)