Как стать автором
Обновить

Как передать произвольное количество бит, передав 2 бита

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров11K

Недавно прочитал статью на Пикабу про бесконечное сжатие, где предлагалось создать словарь 3-х байтовых блоков, и представлять информацию в виде ссылок на эти блоки. Понял что выигрыша в этом нет, но идея передавать не саму информацию, а что-то другое, меня зацепила. Начал размышлять, допустим демон на дне океана перекусывает нитку оптоволокна и смотрит, как туда сюда бегут 1 и 0. Какой в них смысл? Одно и тоже. И правда, как извлечь смысл из этого однообразия. А здесь вступают в игру фактор времени и договоренности. То есть добавляются дополнительные измерения, о которых демон не знает. Стартовые, стоповые биты, длина пакета.

Стал думать, хорошо, как можно использовать время, договоренность и идею передавать не саму информацию, а ссылку на нее. Как передать ссылку на информацию в словаре, не передавая ее. Допустим передать не сами 4 бита информации, а индекс строки этих 4-х битов в таблице всех возможных значений 4 бит.

Например передать биты 1010, не передавая их индекс 10 в таблице. Для этого мы можем использовать Время и Договориться. Пусть у передатчика и приемника(лазерные указки например) будут одинаковые тактовые генераторы. И соглашение о том, что приемник, получив импульс света, начинает считывать данные в таблице строка за строкой. А получив второй импульс, останавливается и записывает данные текущей строки как полученные. Соответственно передатчик, отправив первый импульс считает такты (в данном случае 11) и передает второй импульс, чтобы приемник остановил считывание в таблице.

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

Например если надо передать длинный пакет битов, то надо использовать гигагерцовый генератор и тоже избавить его от суеты. Например для пакета 111111010000000000, глупо заставлять приемник считывать сотни тысяч строк в таблице пока он не дойдет до нужной. Длительностью первого импульса можно включать генератор отсчета разрядов. То есть по входящему фронту импульса, приемник начинает считать номер разряда и заканчивает счет по спадающему фронту. Для числа указанного выше нужно чтобы приемник насчитал 6 импульсов для старших разрядов и начал считать с 111111000000000000.

Самая простая и наглядная реализация принципа использования общего генератора и договоренности. Это шеф себе и секретарше, сидящей в соседнем кабинете, ставит раскрашенные часы со стрелкой и стучит в гонг, когда секундная стрелка находится в секторе его желаний. Таким образом он может разрисовать на часах больше секторов с разными желаниями (по научному, передавать больше данных на бит), но тут уже все упирается в скорость реакции секретарши.

Теги:
Хабы:
Всего голосов 25: ↑8 и ↓17-7
Комментарии135

Публикации

Истории

Ближайшие события

19 марта – 28 апреля
Экспедиция «Рэйдикс»
Нижний НовгородЕкатеринбургНовосибирскВладивостокИжевскКазаньТюменьУфаИркутскЧелябинскСамараХабаровскКрасноярскОмск
22 апреля
VK Видео Meetup 2025
МоскваОнлайн
23 апреля
Meetup DevOps 43Tech
Санкт-ПетербургОнлайн
24 апреля
VK Go Meetup 2025
Санкт-ПетербургОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань
14 мая
LinkMeetup
Москва
5 июня
Конференция TechRec AI&HR 2025
МоскваОнлайн
20 – 22 июня
Летняя айти-тусовка Summer Merge
Ульяновская область