问题描述:
给玩家4张牌,每张面值1~13,采用+、-、*、/以及括号,使其最终结果为24
解答:
1.穷举法
每个数只能使用一次,所以对4个数进行全排列共有4!=24种排列;
需要3个四则运算符号:4^3=64种;
加括号方式:(A(B(CD))), ((A(BC))D), ((AB)(CD)), (A((BC)D))), (((AB)C)D) 5种
共有:4! * 4^3 * 5 = 7680种;
2.分治法
假定集合A={1,2,3,4},首先任意取出两个数,如去除1,2,A=A - {1,2},进行不同的四则运算,1+2=3,1-2=-1, 1*2=2, 1/2=0.5, 将结果再分别加入集合A,可得:
B={3,3,4}, C={-1,3,4}, D={2,3,4}, E