怎么用“枚举法”解决24点问题
24点问题,是一个比较有趣的游戏。比如:给定五个数字——5,6,3,8,9,要求用这五个数的任意排列,配合加、减、乘、除,使得结果等于24。下面,我用Mathematica来寻找可能存在的等式。

2、准备四个运算符号。注意,运算符号可以重复。

4、转置一下,就得到4*2的形式矩阵:{B, A[[2 ;; 5]]} // Transpose;展开为一维列表,可以发现,运算符号和数字是交错排列的:{B, A[[2 ;; 5]]} // Transpose//Flatten

6、看看,StringJoin能不能把上面的“算式”串起来?——:{A[[1]], {B, 钽吟篑瑜A[[2 ;; 5]]} // Transpose} // Flatten // StringJoin结果会报错,提示“算式”里面的数字,不是字符串的形式。

8、如果需要计算这个式子,需要转化为表达式:% // ToExpression结果是85/18≠24,所以,这个式子,不是我们要寻找的算式。

2、运算符号允许重复出现:a = Tuples[{"+", "-", "*", "/"}, 4];
