Zahlenumkehrung
Die Ziffern-Umkehr-Permutation, und im Speziellen die Bit-Umkehr-Permutation, ist eine Methode zur Neuanordnung, die in manchen Algorithmen der schnellen Fourier-Transformation verwendet wird.
Definieren Sie eine Funktion, die die inverse Permutation vom Grad generiert.
In[1]:=
![Click for copyable input](assets.de/integer-reversal/In_28.png)
reversalperm[k_, b_] := IntegerReverse[Range[0, b^k - 1], b, k] + 1;
Generieren Sie die Bit-Umkehr-Permutation für Listen der Länge .
In[2]:=
![Click for copyable input](assets.de/integer-reversal/In_29.png)
Table[reversalperm[k, 2], {k, 0, 5}]
Out[2]=
![](assets.de/integer-reversal/O_25.png)
Generieren Sie die Ziffern-Umkehr-Permutation der Basis 3 für Listen bestehend aus 9 Elementen.
In[3]:=
![Click for copyable input](assets.de/integer-reversal/In_30.png)
reversalperm[2, 3]
Out[3]=
![](assets.de/integer-reversal/O_26.png)
Repräsentieren Sie diesen Austausch.
In[4]:=
![Click for copyable input](assets.de/integer-reversal/In_31.png)
segment[{p1_, p2_}] := {PointSize[Large], Point[{p1, p2}],
Line[{p1, p2}], Text[Last[p1], p1 - {1/2, 0}],
Text[Last[p2], p2 + {1/2, 0}]};
In[5]:=
![Click for copyable input](assets.de/integer-reversal/In_32.png)
With[{k = 2, b = 3}, Graphics[
segment /@
Thread[{Thread[{0, Range[b^k]}], Thread[{b^k, reversalperm[k, b]}]}]
]]
Out[5]=
![](assets.de/integer-reversal/O_27.png)