Reversión de números enteros
La permutación de reversión de dígitos, y en particular la permutación de reversión de bits, es una técnica de reordenamiento utilizada en algunos algoritmos rápidos de transformada de Fourier.
Defina una función que genere la permutación de reversión de grado .
In[1]:=
![Click for copyable input](assets.es/integer-reversal/In_28.png)
reversalperm[k_, b_] := IntegerReverse[Range[0, b^k - 1], b, k] + 1;
Genere la permutación de reversión de bits para listas de longitudes .
In[2]:=
![Click for copyable input](assets.es/integer-reversal/In_29.png)
Table[reversalperm[k, 2], {k, 0, 5}]
Out[2]=
![](assets.es/integer-reversal/O_25.png)
Genere la permutación de reversión de dígitos base 3 para listas de 9 elementos.
In[3]:=
![Click for copyable input](assets.es/integer-reversal/In_30.png)
reversalperm[2, 3]
Out[3]=
![](assets.es/integer-reversal/O_26.png)
Represente esos cambios.
In[4]:=
![Click for copyable input](assets.es/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.es/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.es/integer-reversal/O_27.png)