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,通过这个简单的程序,相信你一定一眼就能看出陷阱所在,但当程序规模比较大时有时不注意会自己构造出这样的陷阱,坑死人啊。
故事是我在写一个遗传算法时遇到的,我用一个列表保存历史最优解,但是历史最优解会发生偷偷“变异”的情况,源程序比较大,这里我构建了一段具有相似情形的代码。
下面的代码很简单, 求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)
相关文章推荐
- GitHub上Top20个 Python 语言机器学习项目
- 基于Python语言使用RabbitMQ消息队列(一)
- 求职面试的语言陷阱
- python语言打印出7*7的菱形
- 给你选择Python语言实现机器学习算法的三大理由
- IronPython入门学习(二种不同的语言比较)
- Python函数参数默认值的陷阱和原理深究
- 编程语言系列(五)--python语言基础知识点总结
- 快速深入一门语言的几个问题(Python面试题、笔试题、快速深入一门语言的绝招)
- Python未来互联网主流语言!
- Python函数与类参数默认值陷阱
- Python语言基础学习不错的网站
- 值得关注的10个python语言博客(转)
- 【脚本语言系列】关于 Python 错误处理,你需要知道的事
- Python 自然语言处理 二: 用ngrams 进行 语言种类识别
- python语言bug
- Python语言基础(2)
- 在使用python语言的open函数时,提示错误OSError: [Errno 22] Invalid argument: ‘文件路径’
- python 语言的基础规范
- 坚持#第232天~零基础自学云计算基础语言应用之python第8节