数字分解
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]=
