现有一列随机的正整数,算他有2^n个吧,然后两两结合生成一个二叉树,节点是上一级两个数的和,合成的cost是上一级两个数的乘积。 而整个树的cost由总cost最高的那个branch决定,求用什么方法排列这一列数使生成的树cost最低。 例如,1,2,3,4这四个数 C=21+12=33 % 将一个树分成等长的左子树和右子树 bisect(List, Left, Right) :- append(Left, Right, List), length(Left, LeftLength), length(Right, RightLength), LeftLength = RightLength. % 计算节点Cost = 左子树数字和 * 右子树数字和 element_cost(List, Cost) :- bisect(