2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Корректное кодирование строки
Сообщение26.12.2022, 11:26 


20/12/14
148
Сейчас экспериментирую с одним из методов оценки хаотичности строки.
Суть в том, что для достаточно длинной случайной строки $ 'aabbaccaca...'$ (с алфавитом $[a, b, c]$)
количество паттернов $[a, b, c], [aa, ab, ba, bb, ac, ca, cc, bc, cb] $ и т.д. должно быть примерно одинаковым (для каждого вида паттерна). Ну или выравниваться с ростом длины.
У метода есть свои подводные камни, но суть сейчас не в этом.

Хотелось кодировать строки бинарно, тем самым минимизируя число паттернов для анализа.
Но как это сделать корректно?! Примитивные кодировки типа $[a\to00, b\to01, c\to10]$ искажают даже относительное количество 0 и 1. "Хорошая" кодировка возможна для алфавитов длины $2^n$ , а как быть с другими?

 Профиль  
                  
 
 Re: Корректное кодирование строки
Сообщение26.12.2022, 12:29 
Заслуженный участник
Аватара пользователя


16/07/14
9166
Цюрих
Скажите, что ваша изначальная строка - это запись числа в троичной системе, и переведите его в двоичную.

 Профиль  
                  
 
 Re: Корректное кодирование строки
Сообщение26.12.2022, 20:59 


20/12/14
148
Хмм, что-то подобное предполагал, спасибо, надо пробовать!

 Профиль  
                  
 
 Re: Корректное кодирование строки
Сообщение26.12.2022, 22:09 


20/12/14
148
Штош, выглядит отлично! На Mathematica:
- Создаем случайную строку в троичной системе. Убеждаемся, что 3-tuples распределены достаточно равномерно:
Код:
init = RandomInteger[{0, 2}, 50000];
Multicolumn[Tally@Partition[init, 3, 1], 3, Frame -> All]


Изображение

Переводим в двоичную, смотрим на те же тройки:
Код:
data = IntegerDigits[FromDigits[init, 3], 2];
Tally@Partition[data, 3, 2]


Изображение

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group