有一个题,转到lisp中是这样: 2个嵌套表,一个为lst1,一个为lst0,其中lst1像这样: '((0 1 0 1 0) (1 0 1 01) (1 1 1 0 0) (0 1 0 0 1)),(已给出,无规律) 而lst0像这样: '((1 0 1 0 1) (1 1 0 1 1) (0 0 0 0 1) (1 1 1 1 0)).(已给出,无规律) lst1和lst0等长,其子表中元素等长且只含有0和1。字表长度可到100, lst1和lst0长度也可到100,但是lst1和lst0的长度可以与其中的子表长度不同。 现在要求把lst1表经过最短的步骤转换成lst0,可以是这样的2种步骤: 1.交换lst1中2个子表的位置; 2.把0或者1变成1或者0,像翻盖子一样,呵呵。 基本上是这样的意思,不清楚可以发问。 已经算了一点,基本思路是对每一个lst1中的元素(子表)找到lst0中与他差异最小的元素(子表), 返回2者的索引序号进行交换。问题是:具体操作牵扯到lst1中某个子表对应n个lst0中差异最小都一样的的子表要对这些n个子表进行lst1的反馈,再进行比较操作。这样很不妙,期待好心人帮忙给出一个启示,最好加一 点代码上来,不胜感激! 有意可发到邮箱探讨,anda@126.com">lolanda@126.com |