В вычислительной математике Адамар приказал быстрое преобразование Уолша – Адамара (FWHT h) - это эффективный алгоритм для вычисления преобразования Уолша – Адамара (WHT). Наивная реализация WHT порядка будет иметь вычислительную сложность O (). FWHT h требует только дополнений или вычитания.
FWHT h - это алгоритм разделения и владения, который рекурсивно разбивает WHT размера на два меньших WHT размером . Эта реализация следует рекурсивному определению матрица Адамара :
коэффициенты нормализации для каждого этапа могут быть сгруппированы вместе или даже опущены.
последовательность упорядочена, a Также известное как упорядоченное по Уолшу быстрое преобразование Уолша – Адамара, FWHT w, получается путем вычисления FWHT h, как указано выше, и последующего переупорядочивания выходных данных.
Простая быстрая нерекурсивная реализация преобразования Уолша-Адамара следует из разложения матрицы преобразования Адамара как , где A - это m-й корень из .
def fwht (a) ->None: "" "Быстрое преобразование Уолша – Адамара на месте массива a." "" H = 1, а h < len(a): for i in range(0, len(a), h * 2): for j in range(i, i + h): x = a[j] y = a[j + h] a[j] = x + y a[j + h] = x - y h *= 2
.