혼합 기저 계산
MixedRadix를 사용하면 다른 자리 숫자가 다른 바닥을 가지는 수치 시스템을 처리 할 수 있습니다.
다음은 고대 로마 군대의 일부 군인 부대의 명칭입니다.
In[1]:=
units = {"legion", "cohort", "century", "contubernia", "soldier"};
고대 로마 legion (군단)은 10 cohort (보병대), 6 century (백명씩)가 한 cohort를 이루며, 10 contubernia (분대)가 century를 이루고, 한 분대는 8명의 병사로 구성되어 있었습니다.
In[2]:=
bases = MixedRadix[{10, 6, 10, 8}];
이 수치 시스템을 사용한 contubernia (분대)의 군인수를 알아봅니다.
In[3]:=
FromDigits[{1, 0}, bases]
Out[3]=
century의 군인수를 알아봅니다.
In[4]:=
FromDigits[{1, 0, 0}, bases]
Out[4]=
cohort의 군인수를 알아봅니다.
In[5]:=
FromDigits[{1, 0, 0, 0}, bases]
Out[5]=
legion의 군인수를 알아봅니다.
In[6]:=
FromDigits[{1, 0, 0, 0, 0}, bases]
Out[6]=
반대로, 군인수를 이러한 전략 단위로 분할합니다.
In[7]:=
IntegerDigits[16894, bases]
Out[7]=
In[8]:=
IntegerDigits[16894, bases];
Thread[units -> %]
Out[8]=