两个数值之间计算表示为s = f(a,b),这可能有六种情况:
对于三个数值之间的可能计算
多于两个数的情况,先考虑三个数的情况
F(a,b,c) = f(a, f(b,c)) 或者 f(f(a,b), c) 或者 f(f(a,c), b))
四个数的情况一样可以最终分解为一系列两个数的f(a,b)运算,只是不同的分解方法的可能性会更多。而这也正是比较关键的地方。
再回头仔细考察三个数的情况,其实本质上这里可以概括为两种情况: 任取三个数中的一个数,假定为 a,
而对于 f(a,f(b,c)) 可以转化为 f(f(b,c), a),这与 f(f(a,b), c) 和 f(f(a,c),b) 同构。因此,问题的关键就变成如下两个问题:
这种方式应该能够遍历所有可能的计算结果。对于计算24点来说,就是将每个可能的结果与24进行比对。
在已知计算结果S(比如 S=24)这样的情况下也可以有另一种处理方法。
S = F(a, b, c) = f(a, f(b,c)) = f(f(a,b), c)
S = f(f(a,b), c) 与前述情况相同。
S = f(a, f(b,c)) 可以变形为 f(S,a) = f(b,c)