您的位置:首页 > 编程语言 > Python开发

python语言的陷阱

2012-11-30 00:00 288 查看
这里讲一个我用python语言的一个故事:

故事是我在写一个遗传算法时遇到的,我用一个列表保存历史最优解,但是历史最优解会发生偷偷“变异”的情况,源程序比较大,这里我构建了一段具有相似情形的代码。

下面的代码很简单, 求f = -(x - 5)^2 - (y - 5)^2 + 10的最优解 x = 0,1,...10 y = 0, 1,..10很明显x = 5 y = 5时取得最大值10, 但是运行结果会让你大跌眼镜的,最终的输出结果为[10, 10] : 10,通过这个简单的程序,相信你一定一眼就能看出陷阱所在,但当程序规模比较大时有时不注意会自己构造出这样的陷阱,坑死人啊。

bestvalue = -1

bestxy = []

newxy = []

for  x in range(11):

for  y in range(11):

f = -((x-5)**2 + (y-5)**2 + 10)

newxy[0]=x

newxy[1]=y

if f < bestvalue:

best = f

bestxy = newxy

print '%s : %s' % (bestxy, best)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 陷阱 列表