Wolfram 语言

代数和数论

求解数字分解

新函数 Groupings 为生成将特定对象和操作组合可产生的可能结果提供了强大的方法. 特别对于求解一些如法国电视节目 Des chiffres et des lettres 中出现的数学游戏,或其他社交网络中流行的现代计算问题非常有用.

使用整数 1、1、5、8 和 4 种基本算术操作如何得到 10.

In[1]:=
Click for copyable input
ints = {1, 1, 5, 8}; ops = {Plus, Subtract, Times, Divide};

对于这 4 个整数和给定的二进制运算,共有 3840 种可能的组合.

In[2]:=
Click for copyable input
Length[combs = Groupings[Permutations[ints], ops -> 2, HoldForm]]
Out[2]=

以下为其中一些范例.

In[3]:=
Click for copyable input
RandomSample[combs, 10]
Out[3]=

计算每种组合的结果,其中很多涉及到被 0 除.

In[4]:=
Click for copyable input
results = Quiet@ReleaseHold[combs];

以下为得出 10 的唯一组合.

In[5]:=
Click for copyable input
Cases[Thread[Equal[combs, results]], _ == 10]
Out[5]=

最常见的结果是 13,由 240 不同方式生成.

In[6]:=
Click for copyable input
TakeLargestBy[Tally[results], Last, 5]
Out[6]=

相关范例

de en es fr ja ko pt-br ru