|
本文参与了每月新项目计划。
PCP@home是一个关于算法的项目。严格来说这并不能算是一个项目,只能说是让每个人都有机会去找找一个有趣问题的解。这个项目研究的是Post's一致问题。这个问题的大意就是说,你有两个表,分别是一个英文字母代替一段二进制数字,求最短的英文字串,使两个表翻译出来的二进制一样。当然,问题并没有看起来那么简单,这可是个NP问题。这个项目的目的是找到在一定条件约束之下,不同的表求出来的这种字符串最长的是多少。
下载和参与
这个项目有多个平台下的程序,都在 Contribute 页中,做得最烂的是 Windows 的,会有内存泄露。还要自己根据自己想计算的东西自己写批处理程序,计算结果还需要用户去自己查看上报,非常麻烦。对于不同目标,建议的批处理如下:
pcpsieve 4 4 40000 2000 >result.txt
这才能将结果储存到文件当中,否则在屏幕上是看不及的。后两个数字的设置主要是控制程序的运算,你也可以自己试一下别的设置。
总结
这是个有趣的问题,可惜程序写得太烂,不便于用户。建议初级与中级用户参与别的组合数学的项目,如 SZDG 或者 Distributed.net 的 OGR-25。高级用户可以自己编写程序计算。
以下是程序的一些结果:
- PcpSieve 0.05 - (c) 2000, 2001 Heiko Stamer <[email][email protected][/email]>
- ((1010,1101),(1,1000),(1,011),(10,0110))
- ( 0 -3 -2 -2 )
- diff = ( +1 -3 -1 -1 )
- ( -1 0 -1 -1 )
- l_diff WRONG - TRIVIAL
- ((0110,0110),(0110,0),(1,01),(1111,1001))
- ( 0 +3 -1 0 )
- diff = ( 0 +1 -1 -2 )
- ( 0 +2 0 +2 )
- s1_diff WRONG - TRIVIAL
- ((0100,1101),(0,0),(10,1),(0,1))
- ( 0 0 +1 0 )
- diff = ( +2 0 +1 +1 )
- ( -2 0 0 -1 )
- l_diff WRONG - TRIVIAL
- ((1110,101),(0010,100),(01,1001),(001,11))
- ( +1 +1 -2 +1 )
- diff = ( 0 +1 -1 +2 )
- ( +1 0 -1 -1 )
- LEA: A = 2
- A0 = 0 A1 = 1
- A0 = 1 A1 = 0
- A0 = 2 A1 = -1
- LEA: E[i] = -1 1 3
- NO SOLUTION
- ((1000,0),(0000,000),(1000,010),(111,110))
- ( +3 +1 +1 0 )
- diff = ( +2 +1 +1 -1 )
- ( +1 0 0 +1 )
- l_diff WRONG - TRIVIAL
- ((1101,110),(1,100),(000,0100),(011,0))
- ( +1 -2 -1 +2 )
- diff = ( 0 -2 0 0 )
- ( +1 0 -1 +2 )
- s0_diff WRONG - TRIVIAL
- ((0101,00),(01,0100),(0001,0100),(110,001))
- ( +2 -2 0 0 )
- diff = ( 0 -2 0 -1 )
- ( +2 0 0 +1 )
- s0_diff WRONG - TRIVIAL
- ((0001,101),(11,0001),(111,10),(100,0))
- ( +1 -2 +1 +2 )
- diff = ( +2 -3 -1 +1 )
- ( -1 +1 +2 +1 )
- LEA: A = 0
- A0 = 1.5 A1 = 1
- A0 = 0.5 A1 = 2
- A0 = -0.5 A1 = 1
- LEA: E[i] = 0.5 -1.5 -1.5
- o = 111 not in u-language
- TRIVIAL
- ((1110,11),(0,0),(000,0011),(01,1101))
- ( +2 0 -1 -2 )
- diff = ( +1 0 +1 0 )
- ( +1 0 -2 -2 )
- s0_diff WRONG - TRIVIAL
- ((0101,1),(01,110),(10,00),(10,1100))
- ( +3 -1 0 -2 )
- diff = ( +2 0 -1 -1 )
- ( +1 -1 +1 -1 )
- LEA: A = 0
- A0 = -0 A1 = 1
- A0 = 0.5 A1 = -1
- A0 = 0.5 A1 = 1
- LEA: E[i] = -1 1.5 -0.5
- o = 0101 not in u-language
- TRIVIAL
- ((1001,0),(110,001),(0000,0010),(0,00))
- ( +3 0 0 -1 )
- diff = ( +1 -1 +1 -1 )
- ( +2 +1 -1 0 )
- LEA: A = 0
- A0 = 1 A1 = -0.5
- A0 = -1 A1 = 0.5
- A0 = 1 A1 = -0
- LEA: E[i] = 1.5 -1.5 1
- o = 110 not in u-language
- TRIVIAL
复制代码
[ Last edited by fwjmath on 2006-12-15 at 18:05 ] |
|