数字分解
NumberDecompose 将数字表示为多个单位的倍数,比如货币面值.
巴哈马元 (BSD) 使用以下银行货币面值.
In[1]:=
denominations = {100, 50, 20, 10, 5, 3, 2, 1, 1/2};
由于 BSD 中有 3 这个面值,与其他货币相比,这使得其有更多可能方式分解给定数额. 以下为相邻面值的商.
In[2]:=
Divide @@@ Subsequences[denominations, {2}]
Out[2]=
在大多数货币系统中,仅出现商 2 和 5/2,但在此处出现了 5/3 和 3/2.
In[3]:=
Divide @@@ Subsequences[denominations, {2}];
BarChart[%]
Out[3]=
将一定数量的巴哈马元分解为可用的银行货币面值.
In[4]:=
NumberDecompose[598.50, denominations]
Out[4]=
用 NumberCompose 恢复原来的数额.
In[5]:=
NumberCompose[{5, 1, 2, 0, 1, 1, 0, 0, 1.}, denominations]
Out[5]=
以下为用每个面额的一个纸币获得的钱数.
In[6]:=
NumberCompose[Table[1, Length@denominations], denominations] // N
Out[6]=