Goode-Thomasův algoritmus je algoritmus pro výpočet rychlé Fourierovy transformace aplikovaný na sekvence, jejichž délka je rovna součinu dvou prvočísel .
Algoritmus Goode-Thomas by neměl být zaměňován s algoritmem Cooley-Tukey , kde dělitelé délky transformace nemusí být coprime. Goode-Thomasův algoritmus je touto podmínkou omezen a také používá složitější schéma reindexace než algoritmus Cooley-Tukey, ale nevyžaduje střední násobení komplexními faktory, a proto je z hlediska výpočtů poněkud jednodušší [1] .
Pro libovolné přirozené číslo, diskrétní Fourierova transformace komplexního vektoru , kde , je komplexní vektor , kde , jehož složky jsou dány vzorcem
kde .
Nechat , kde a být coprime. Nechť také a být nové vstupní indexy dané vztahy [2]
Odtud podle čínské věty o zbytku a Bezoutova vztahu vyplývá, že existují celá čísla a taková,
a Podobně nechť a být nové výstupní indexy dané vztahy
Pak
Použití notace
původní vzorec má formu
to znamená, že došlo k přechodu z jednorozměrné transformace délky na dvourozměrnou transformaci velikosti . Počet násobení a počet sčítání se přitom stal přibližně [3] .