Author Topic: Задачка о ёмкости кода  (Read 351 times)

Offline Toman

  • Ветеран
  • *****
  • Posts: 1266
  • Карма: +217/-34
    • View Profile
Задачка о ёмкости кода
« on: 20 March 2024, 03:05:08 »
  • 0
  • 0
Чисто практическая задачка. Информация о состоянии некого объекта передаётся при помощи двоичного кода (например, включением-выключением некоторого сигнала по границам некоторых периодов равной продолжительности, которую можно считать единичной). Код является периодическим и циклическим, т.е. постоянно повторяется, и начало/конец кодовой комбинации никак не обозначены, т.е. всё, что получается друг из друга циклической перестановкой, считается одним и тем же кодом. При этом длина кодового цикла заранее задана, и кроме того, задано, что цикл обязан состоять из двух половин, являющихся побитной инверсией друг друга.
Вопрос: как посчитать число различимых кодовых комбинаций для любой заданной длины половины цикла (натурального числа)?

Offline Bhudh

  • Дважды герой
  • **
  • Posts: 5677
  • Карма: +2059/-172
    • View Profile
Re: Задачка о ёмкости кода
« Reply #1 on: 20 March 2024, 04:03:01 »
  • 0
  • 0
Число асимметричных перестановок?
Jestem dokładny i dociekliwy. (Wg Pinii.)
Всё, что нужно для торжества зла — это бездействие добрых людей. Поэтому бездействовать не надо. Алексей Навальный

Offline Toman

  • Ветеран
  • *****
  • Posts: 1266
  • Карма: +217/-34
    • View Profile
Re: Задачка о ёмкости кода
« Reply #2 on: 20 March 2024, 12:35:11 »
  • 0
  • 0
Число асимметричных перестановок?
Почему асимметричных?

Offline Toman

  • Ветеран
  • *****
  • Posts: 1266
  • Карма: +217/-34
    • View Profile
Re: Задачка о ёмкости кода
« Reply #3 on: 20 March 2024, 12:44:16 »
  • 0
  • 0
На НЛ Хеллерик дал такую ссылку: https://oeis.org/A000016/list
И формулу, дающую достаточно хорошее приближение (для достаточно длинных кодов): a(n) = 2^n/(2*n)
Вроде да, это тот самый ряд. На длинах в степени двойки принимает значения степеней двойки, как можно заметить - точно соответствующие этой формуле.

Offline Toman

  • Ветеран
  • *****
  • Posts: 1266
  • Карма: +217/-34
    • View Profile
Re: Задачка о ёмкости кода
« Reply #4 on: 20 March 2024, 12:59:23 »
  • 0
  • 0
Что касается самой формулировки задачки - то "двойной" код длиной 2n, состоящий из "ритмически одинаковых", просто побитово инвертированных половинок длины n, можно представить проще - как двоичный код длины n, где каждый разряд соответствует месту, где состояние сигнала меняется или не меняется (соотв. 1 или 0), тогда условие, что половины именно инвертированы, преобразуется в то, что в дифференциальном коде должно быть всегда нечётное число единиц.
Дальше нам надо по-прежнему собрать все возможные такие коды в кучки таких, которые переходят друг в друга при циклическом сдвиге, и пересчитать эти кучки - в чём и состоит суть задачи.