Wolfram 语言

代数和数论

数字分解

NumberDecompose 将数字表示为多个单位的倍数,比如货币面值.

巴哈马元 (BSD) 使用以下银行货币面值.

In[1]:=
Click for copyable input
denominations = {100, 50, 20, 10, 5, 3, 2, 1, 1/2};

由于 BSD 中有 3 这个面值,与其他货币相比,这使得其有更多可能方式分解给定数额. 以下为相邻面值的商.

In[2]:=
Click for copyable input
Divide @@@ Subsequences[denominations, {2}]
Out[2]=

在大多数货币系统中,仅出现商 2 和 5/2,但在此处出现了 5/3 和 3/2.

In[3]:=
Click for copyable input
Divide @@@ Subsequences[denominations, {2}]; BarChart[%]
Out[3]=

将一定数量的巴哈马元分解为可用的银行货币面值.

In[4]:=
Click for copyable input
NumberDecompose[598.50, denominations]
Out[4]=

NumberCompose 恢复原来的数额.

In[5]:=
Click for copyable input
NumberCompose[{5, 1, 2, 0, 1, 1, 0, 0, 1.}, denominations]
Out[5]=

以下为用每个面额的一个纸币获得的钱数.

In[6]:=
Click for copyable input
NumberCompose[Table[1, Length@denominations], denominations] // N
Out[6]=

相关范例

de en es fr ja ko pt-br ru