写程序,过中秋

王小敏同学昨天给俺出了道题,还非得要求用C,结果差点儿没累死……换我们可爱的Python,结果一会儿就搞定了。题目是这样的:

“有一个3x3的矩阵,现在要往里面填9个不同的数字。唯一的要求是:相邻的数字相加不能为质数。注:数字的取值范围为:1~N。(N为一个>=10的数)请用程序解出尽可能多的符合要求的矩阵。”

俺穷举了一把,就得出结果乐~~我的程序如下:

! /usr/bin/env python

def Perm(items, n=None):
if n is None:
n = len(items)
for i in range(len(items)):
v = items[i:i+1]
if n == 1:
yield v
else:
rest = items[:i] + items[i+1:]
for p in Perm(rest, n-1):
yield v + p

neighbors = [[1, 3], [2, 4], [5], [4, 6], [5, 7], [8], [7], [8]]

def IsPrime(x):
for i in range(2, x/2+2):
if (x%i == 0):
return False
return True

def WantIt(listobj):
for i in range(len(listobj)-1):
for j in neighbors[i]:
if(IsPrime(listobj[i]+listobj[j])):
return False
return True

enum = Perm(range(1, 11), 9)
for k in enum:
if(WantIt(k)):
print k

打住,这道题就到此为止吧。

接着说那令人心醉的patch。前几天做的一个patch提交了3次终于被Andrew给纳入-mm树了,呵,不容易啊!当中还正好赶上-mm树更新,不过quilt push一把居然没错!好险!要不今天也见不到akpm的确认邮件……说不定我还在那里痛苦地wiggle……

由于mm同学今天来不了,所以俺就闲得没事干了,又正好赶上-mm又更新,干脆又把内核编译一把。N个小时后,把我搜集的warnings打开一看,发了,N多。挑了其中两个好修复的,又提交了两个patch。欧也!

说patch不能不提我们的fmail,昨天一口气提交了N个patch,Carlos都给apply上了。我对Carlos的名字很感兴趣,其实他的全名是Carlos Daniel Ruvalcaba Valenzuela,太长了!貌似应该是俄罗斯人。