Réversion de nombres entiers
La permutation de réversion de chiffres, et en particulier la permutation de réversion de bits, est une technique de réordonnancement utilisée dans certains algorithmes rapides de transformée de Fourier.
Définissez une fonction qui génère la permutation de réversion de degré .
In[1]:=
![Click for copyable input](assets.fr/integer-reversal/In_28.png)
reversalperm[k_, b_] := IntegerReverse[Range[0, b^k - 1], b, k] + 1;
Générez la permutation de réversion de chiffres pour les listes de longueur .
In[2]:=
![Click for copyable input](assets.fr/integer-reversal/In_29.png)
Table[reversalperm[k, 2], {k, 0, 5}]
Out[2]=
![](assets.fr/integer-reversal/O_25.png)
Générez la permutation inverse de base-3 pour les listes de 9 éléments.
In[3]:=
![Click for copyable input](assets.fr/integer-reversal/In_30.png)
reversalperm[2, 3]
Out[3]=
![](assets.fr/integer-reversal/O_26.png)
Représentez ces changements.
In[4]:=
![Click for copyable input](assets.fr/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.fr/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.fr/integer-reversal/O_27.png)