算法

A collection of 8 posts

算法

试用 Prolog 语言解算法题

现有一列随机的正整数,算他有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(

C

计算机是蛋疼人类的好朋友系列(

实验室有个玩具,不知道是谁手欠买来的。是这样的一个东西: 据说它原来是个3x3x3的正方体,不知道又是谁手欠给展开了。 由于智商很宝贵的原因,我拿手里摆弄了好几天都没给它恢复成一个正方体。 怒,写个搜索算法。 #include <stdio.h> #define sbyte signed char // sbyte: (-128 to +127) #define SIZE 3 // Size of cube. #define AREA (SIZE * SIZE) // Area of a face of cube. #define VOLUME (SIZE * SIZE * SIZE) // Volume