lolanda 发表于 2008-8-21 17:58:00

如何优化用lisp写的表处理函数,内有详细说明

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

caoyin 发表于 2008-8-21 18:14:00

听着有些糊涂啊,呵呵

lolanda 发表于 2008-8-21 21:06:00

<p>算起来更糊涂...想了两个晚上了.</p><p>不要看我的想法,欢迎贴上来自己的办法。</p>

guohq 发表于 2008-8-21 22:26:00

没明白是什么意思

ZZXXQQ 发表于 2008-8-21 23:15:00

<p>既然已有st0干吗要从st1换呢?</p>
页: [1]
查看完整版本: 如何优化用lisp写的表处理函数,内有详细说明