Обновить

M-последовательности, последовательности Лежандра, Якоби и разностные множества Адамара

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели12K
Всего голосов 4: ↑2 и ↓2+2
Комментарии9

Комментарии 9

...и? И что дальше?

И что произошло с\TeX'ом в заголовках пунктов?

Такое ощущение что это кусок главы выдранный из какой-то книжки по математике и зачем-то опубликованный на Хабре. Особенно повеселило: время на прочтение 5 минут и сложность: средняя :))

M-последовательности применяются в радиолокации для кодирования BPSK зондирующих импульсов.

Сколько различных М-последовательностей можно сгенерировать на сдвиговом регистре из K триггеров?

Так как период M-последовательности равен 2^K-1 и равен порядку её характеристического многочлена, то ваша задача равносильна нахождению количества примитивных многочленов степени K над полем \mathbb{F}_2.
Т.е. \frac{\phi(2^K - 1)}{K}, где \phi(\cdot) — функция Эйлера.

Что такое поле F2? Что такое поле?

И что такое функция Эйлера?

Поле в общей алгебре — множество, для элементов которого определены операции сложения, взятия противоположного значения, умножения и деления (кроме деления на ноль), причём свойства этих операций близки к свойствам обычных числовых операций.
Поле \mathbb{F}_2 в свою очередь это множество из двух элементов {0, 1}. Нетрудно проверить, что для него выполнены все аксиомы поля. С ними и формальными определениями лучше ознакомиться в каком-нибудь учебнике, например, Р. Лидл, Г. Нидеррайтер - Конечные поля.

Функция Эйлера \phi(n) отвечает на вопрос, сколько существует натуральных чисел взаимнопростых с n и непревосходящих его.

Когда я поработал с LFSR в рамках хобби, то мне стало казаться, что математики порой ради высокой абстракции могут переусложнять многие вещи даже в научпопе. Да, теория нужна, но большинство людей мыслят не от абстракций, а от чего-то более осязаемого. Максимальность периода какого-нибудь xorshift можно доказать куда нагляднее:

1) Функция перехода ГПСЧ записывается в виде матрицы (и отдельно проговаривается, что тут всё не как обычно, т.е. вектор с битами пишут нередко горизонтально и слева от матрицы), операции в GF(2) объясняется по простому: заменяй сложение и вычитание на XOR, умножение - на AND. Да, тут возможны неочевидные нюансы в виде вырожденности матрицы, но обычно xorshift собирают по таблице с биективыми операциями над машинными словами.

2) Отдельно показывают, как эта самая матрица (часто companion matrix, но для xorshift может быть и иначе) выдает биты или машинные слова. Прям проговаривая и водя маркером.

3) Потом возводят матрицу в степень "период", и смотрят, получилась ли единичная матрица (что логично - оно должно в конце зациклиться)

4) Дальше возводят матрицу в степени "период / простой делитель периода" и смотрят, "не зациклилось ли по дороге".

5) Если ГПСЧ большой и матрицы тормозят, то можно уже переходить к характеристическим полиномам как к рекуррентным соотношениям. И через jump function проверять уже полиномы на примитивность. Отдельно показывая то, что деление многочленов уголком может соответствовать "промотке" членов последовательности.

В п.1 можно упростить себе жизнь, используя код на Си напрямую как математическую формулу.

Если M-последовательность удовлетворяет неким теоретическим критериям псевдослучайности, то откуда взялось столько странных ГПСЧ из LFSR с разреженными полиномами, проваливающих тесты на веса Хемминга или даже gap test? Тот же T800, LRND, вихрь Мерсенна без выходной функции, ещё куча ранних работ? У меня сложилось впечатление, что прогон хотя бы терабайта последовательности через PractRand и TestU01 не менее важен, чем теория. Также очень странны какие-либо мысли о ее криптостойкости, она же линейная.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации