Các Walsh-Hadamard transform (WHT) là một sự tổng quát của biến đổi Fourier, và là một sự biến đổi trực giao trên một vector của các số thực hoặc phức tạp của chiều . Phép biến đổi này rất phổ biến trong điện toán lượng tử, nhưng gần đây nó đã được nghiên cứu như một loại tiền đề cho các phép chiếu ngẫu nhiên của các vectơ chiều cao để sử dụng trong chứng minh Bổ đề Johnson-Lindenstrauss. Đặc điểm chính của nó là mặc dù là ma trận vuông , nhưng nó có thể được áp dụng cho một vectơ trong thời gian (chứ không phải ) bằng phương pháp giống FFT. d × d O ( d log d ) d 2
Giả sử vectơ đầu vào thưa thớt : nó chỉ có một vài mục nhập khác (giả sử ). Có cách nào để tính WHT theo thời gian sao cho và cho ?f ( r , d ) f ( d , d ) = O ( d log d ) f ( r , d ) = o ( d log d ) r = o ( d )
Lưu ý: những yêu cầu này chỉ là một cách để chính thức hóa ý tưởng rằng tôi muốn thứ gì đó chạy nhanh hơn cho nhỏ .r