2004年08月16日 星期一 15:16
谢谢你,Xie Yanbo。我是记得多年前的一个life源码,也就百来行,才会想用python是不是也可以百来行写出来。我上网找到几个life的源码,是用VB写的。写得是不错了,可是我不喜欢VB(汗!)。最重要的是,我是想通过这个来多学学python,我刚开始学这个语言。 > On 2004-08-15 01:52:1092505924 +0800, lpjlee37 wrote: > > 近日刚刚开始加入python拥护者行列,在学习python时,想起多年前用pascal和QB写过的game of life,突然想知道用python能有些什么样的写法。所以征集大家的意思作为交流和学习。大家就当是练手喽^_^ > > Game of life:在一个范围里,用小点表示生命,生命周围紧邻的八个点是他的邻居,当一个生命旁边有多于三个邻居的时候,下一轮时,该生命会因为资源不足而死去。如果有1-3个邻居,下一轮他会继续生存,并且他的旁边会多出一个新生命。用亮点表示存活,死亡不显示。 > > 其他规则:1、记录总共生存轮数。2、记录当前存活生命的数量并显示。3、生命全部死亡,或者生命情况维持不变时,提示并结束。 > > 可选规则:1、比较并显示当前生命群体是增长还是减少。2、初始范围大小和初始生命数量在一开始可以按提示输入。3、每轮间隔时间0.1秒到0.5秒可选。4、可以设定初始资源贫富程度,资源匮乏则允许共居生命数量少,反之则多。 > > 这种密集运算我想并不适合直接用 python 来编写。如果你对这个有兴趣, > 曾经有一本介绍 DOOM 的 3D 图像技术的图书,里面用 C++ 实现了一个 > 非常快的 life 程序,国内几年前就已经翻译出版了,很厚的一本书,建议 > 你看一看。另外现在已经有大量的开源的 life 程序,其中很多的运行效率 > 都很好,自己去找一找吧。 > > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > ------------------------------------------------------------------------------------- AOC(冠捷)17寸液晶16ms¥2888 http://design.163.com/aocmonitor/index.html
2004年08月16日 星期一 15:18
python-chinese,您好! 不知道现在有多少实际的客户使用python来做项目,做哪些行业,商业上的,有吗? 顺颂商祺! 2004-08-16 ---------------------------------------------------- 马伟 "坚持把事情做好,让顾客满意" 南京炎黄盈动科技发展有限公司 Actionsoft Co.,Ltd Tel:8625-85324840 Fax:8625-85324840 Mobile:13337835824 E-mail:mawei.nj at actionsoft.com.cn URL:http://www.actionsoft.com.cn ----------------------------------------------------
2004年08月16日 星期一 15:43
Life 程序也算密集计算? 大家不要听说Python不适合做需要大量计算的应用,就把 运行在PC上的Python想象成和人脑计算速度一样慢的怪物了. :) 在现在的PC上,一个100*100的life游戏,每秒更新10次应该是没有问题的。如果需 要比这个快得多的速度的话,可以用数组做数据结构,用 pyrex来改写核心算法。 这种密集运算我想并不适合直接用 python 来编写。如果你对这个有兴趣, >>曾经有一本介绍 DOOM 的 3D 图像技术的图书,里面用 C++ 实现了一个 >>非常快的 life 程序,国内几年前就已经翻译出版了,很厚的一本书,建议 >>你看一看。另外现在已经有大量的开源的 life 程序,其中很多的运行效率 >>都很好,自己去找一找吧。 >> >>_______________________________________________ >>python-chinese list >>python-chinese at lists.python.cn >>http://python.cn/mailman/listinfo/python-chinese >> >> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20040816/8b4ec29b/attachment.html
2004年08月16日 星期一 16:28
On 2004-08-16 15:43:1092642209 +0800, Jacob Fan wrote: > > Life 程序也算密集计算? 大家不要听说Python不适合做需要大量计算的应用,就 > 把运行在PC上的Python想象成和人脑计算速度一样慢的怪物了. :) > 在现在的PC上,一个100*100的life游戏,每秒更新10次应该是没有问题的。如果 > 需要比这个快得多的速度的话,可以用数组做数据结构,用 pyrex来改写核心算 > 法。 我从来也没有把 Python 当成那么慢的怪物,我只是知道“纯”Python 在 某些方面是不太适合的──所有才会有 pyrex 这些产品的出现。不知道你 有没有编写 life 的经历,不要说“在现在的PC上”,即使是在 586 上, 一个 100X100 的 board,做不限制速度的 life 运算,引用前面提到的那 本3D图书的话,都能达到“象一阵风从显示屏上掠过”。刚测了一下,在 我 Celeron 1.7G 的机器上,用 xlife 程序,可以在大约 900X700 的 Board 上、大约5000-7000个存活的 cell 的情况下,达到每秒约 90 代的 衍生速度,图像看起来就象微风掠过的池塘上的涟漪(机器不行,达不到 狂风过境的效果)。 在 life 程序中,瓶颈主要有两方面,图像显示和衍生下一代,这里面一个 主要是显示系统的io速度,另一个则涉及到超多的 Cell 状态读取以及 巨量的 if 运算。我前面只提到密集运算欠妥。图像io可以用一些技巧 增加速度,不过如果不借助第三方的图像模块,单纯 Python 在这一方面 恐怕速度快不了;Cell 的读取和赋值速度要看用什么方法来存储 Cell、 Board,我没有测试过 Python 自带的类型的访问速度,不知道 list 来做 这件事速度如何──但只要这个访问效率稍微有点低效,在每秒几百万、 几千万的访问过程中,肯定会很明显的拖慢程序;if 语句同样要承担每秒 百万次量级的运算,这对于使用伪指令运行的虚拟机来说非常不利。 life 程序的算法确实非常简单,核心代码实际上就是几个语句,不过是对 一个二维数组反复运算而已。但越是这样的简单程序,用 Python 这样的 高级语言、甚至是基于虚拟机的语言来说,运行它们的速度越不理想。我 想这就象系统内核大多用 C 语言来实现,但几个被反复调用的核心函数 往往使用汇编来实现。
Zeuux © 2025
京ICP备05028076号