2012-03-11 2 views
0

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

Моей мотивацией для этого является то, что я хотел бы сделать улучшенную версию видео, которое я положил на Youtube под названием «Numbers are Colorful». На видео показаны базы «Golden Ratio» и пара других связанных систем, использующих иррациональные базы. Удивительно, но одна система должна начинаться с полностью симметричной. но другие демонстрируют частичную симметрию, которую я хотел бы выделить.

+0

Вы хотите рассмотреть возможность добавления или вычитания букв, чтобы сделать строку симметричной? Прямое сравнение букв о центральной точке обеспечило бы меру симметрии. Если вы хотите считать abcb «довольно симметричным», то факт, что вам нужно добавить только «a» в строку, чтобы сделать ее полностью симметричной, несколько важен. В противном случае вы сравните [a] {b} {c} [b] и увидите, что он полностью асимметричен. –

+0

Рассмотрите: 1001010.0010101.Это кажется довольно симметричным, поскольку для каждой положительной цифры есть соответствующая отрицательная цифра, которая не «слишком далеко» от того места, где она должна быть. Поэтому требуется операция, например, перемещение цифры немного влево или вправо. С добавлением и вычитанием букв в качестве базовой операции вы можете удалить письмо с одного края строки и добавить новое к другому краю. Другими словами, должно существовать понятие локальности. –

+0

Это не имеет для меня никакого смысла. Я до сих пор не понимаю, какова ваша мера симметрии. Является ли это число двоичным? Я знаю, что некоторые люди думают в двоичном формате, но я не по умолчанию. Они эквивалентны круговым сдвигом влево, это не симметрично. Не могли бы вы обновить свой вопрос еще несколькими примерами, чтобы понять это? Вы должны уточнить ** точно **, что вы считаете «симметричным», прежде чем кто-нибудь сможет вам помочь в этом. –

ответ

0

Вы ищете повторение или симметрию? До сих пор я не видел никакого примера, который указывает на симметрию только повторения. 1001010.0010101 не является симметричным. Они связаны круговым сдвигом, т. Е. Берут первый набор цифр [1001010], сдвигают его налево на 1 [0010101], и теперь у вас есть правая сторона.

Если вы не дадите понять, что вы пытаетесь определить, этот вопрос слишком плохо определен, чтобы дать разумный ответ. Если вы действительно имеете в виду симметричность, покажите мне пример симметрии. Вы могли бы также означать, что «я вижу здесь интересную картину», которая так плохо определена, что ее трудно определить количественно.

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

Учитывайте цифры в вашем номере как входной сигнал. Выполните частотный анализ этого сигнала для обнаружения повторяющихся разделов чисел. Если у вас есть сильный повторяющийся компонент в вашей серии цифр, это должно относиться к сильной частотной составляющей в вашем анализе. Вы можете измерить силу этого шаблона от определения основной частоты, выполнив преобразование Фурье и суммируя все гармоники для наиболее значимого частотного бункера. Разделите это на полную энергию сигнала, и это даст вам меру между 0 и 1 для того, как «повторяется» сигнал, а также будет идентифицировать периодичность сигнала. Возможно, вам лучше использовать алгоритмы во временной области, такие как Autocorrelation, AMDF или YIN-оценка. (В частности, AMDF)

Аналогичный подход может быть принят, если вы должны были рассмотреть фактическую симметрию (то есть цифры по-прежнему очень похожи, когда вы их отменяете). Сделайте свой входной номер, создайте новый сигнал, изменив его, а затем измерять их «одинаковость» на каждой дискретной фазе. Если у вас есть цифра длины N, вы можете рассмотреть ее заполнение нулями до длины 2N перед выполнением сравнения сигнала с его инвертированным я, чтобы рассмотреть возможность цифр, лежащих вне длины числа.

Методы во временной области, скорее всего, будут работать, потому что они не сильно затронуты прерываниями. Они буквально сравнивают «одинаковость» сигнала путем вычисления разности всех точек на каждой фазе или умножения чисел на каждой фазе. В случае вычитания вы надеетесь добраться до 0, когда они похожи. В случае умножения вы надеетесь получить пик функции, когда числа возвращаются в фазу. Однако они более подвержены шуму (который в этом контексте означает цифры, которые не совсем правильны).

+0

Совершенно симметричная система чисел описывается Кристианом Фууи, О мультипликативно зависимых линейных системах нумерации и периодических точках », R.A.I.R.O. Теоретическая информатика и приложения 36 (2002) 293-314. Другие представления чисел похожи, но «не совсем симметричны». Эти числовые системы представляют числа как последовательности дискретных цифр, поэтому обработка сигнала неверна. Подсчет 1-9 в базе «Золотой коэффициент» (см. Википедию) с radix pt опущен: 1, 1001, 10001, 10101, 10001001, 10100001, 100000001, 100010001, 100100101, 100100101. Как палиндромы, так и «близкие промахи». –

+0

В моем «Цветах красочных» видео YouTube http://bit.ly/y5pjv7 вы можете увидеть абсолютно симметричные числа в третьем столбце. Теперь я нашел некоторую соответствующую литературу по Гуглингу «Несовершенные меры симметрии». Цитируя из Забродского и др. «Меры непрерывности непрерывности»: «мы утверждаем, что обработка природных явлений в терминах либо/или когда дело доходит до свойства характеристики симметрии, может стать ограничивающей до степени , что некоторые детали феноменологических наблюдений и их теоретическая интерпретация может быть потеряна. Некоторые объекты более симметричны, чем другие » –