Cálculos con raíz mixta
MixedRadix permite trabajar con sistemas numéricos en donde distintos dígitos de un número corresponden a distintas bases.
Éstos son los nombres de varias unidades de soldados en la armada romana.
In[1]:=
units = {"legion", "cohort", "century", "contubernia", "soldier"};
Una legión estaba compuesta por 10 cohortes, un cohorte de 6 centurias, una centuria de 10 contubernios, y un contubernio de 8 soldados.
In[2]:=
bases = MixedRadix[{10, 6, 10, 8}];
Número de soldados en un contubernio, usando este sistema numérico.
In[3]:=
FromDigits[{1, 0}, bases]
Out[3]=
Número de soldados en una centuria.
In[4]:=
FromDigits[{1, 0, 0}, bases]
Out[4]=
Número de soldados en un cohorte.
In[5]:=
FromDigits[{1, 0, 0, 0}, bases]
Out[5]=
Número de soldados en una legión.
In[6]:=
FromDigits[{1, 0, 0, 0, 0}, bases]
Out[6]=
A la inversa, descomponga el número de soldado en estas unidades tácticas.
In[7]:=
IntegerDigits[16894, bases]
Out[7]=
In[8]:=
IntegerDigits[16894, bases];
Thread[units -> %]
Out[8]=