软件工程

本类阅读TOP10

·PHP4 + MYSQL + APACHE 在 WIN 系统下的安装、配置
·Linux 入门常用命令(1)
·Linux 入门常用命令(2)
·使用 DCPROMO/FORCEREMOVAL 命令强制将 Active Directory 域控制器降级
·DirectShow学习(八): CBaseRender类及相应Pin类的源代码分析
·基于ICE方式SIP信令穿透Symmetric NAT技术研究
·Windows 2003网络负载均衡的实现
·一网打尽Win十四种系统故障解决方法
·数百种 Windows 软件的免费替代品列表
·收藏---行百里半九十

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
有趣的算法世界---附录(2)

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

 

                                             有趣的算法世界---附录(2)

                                                 关于算法的确定性

 

有人说算法的确定性是每一步都应是确定的,或执行无歧义,结果不应成为我们不可预测的东西?这也是从微观上讲吧,我想如此定义就没有不确定性的存在了.在一步中执行是不确定的,结果完全超出了我们的预测范围,就如整数群<Z,+>,+运算在Z上是封闭的,但有两个整数a,b,对于除法运算/,从整数集的角度看,“a/b“的结果你可能给算没了J,那是不允许的.目前的计算机要防止这一点,只要我们想一想我们如何辛苦的构建 好的,稳定的系统,就会明白这一点.

我认为,现在的确定性不确定性“,是在实际运算中,这一步到下一步的转换上,你是否可以预先确定.比如求和:

For i:=0 to n-1 Do

   sum:=sum+a[i];

任何一步到下一步的转换,都是线形的,可唯一确定.但诸如遗传算法中,下一代的种群在具体的执行前是无法确定的,有很多可能性,就是说此步到下一步,不是线形的关系.我们称之为非确定性.

关于这个问题, 网友Dream_soft说到随机的本质问题.当然我们知道目前计算机的随机数都是伪随机数”,通过一定算法得到的,不同于真正的随机.但要说到什么是真正的随机,这又是个近于哲学上的问题.我们就不说了.

 

                                                 关于算法与程序设计方法理论

 

网友dorcom提到了算法与编程,与语言体制,或者说,算法与程序设计方法学的关系.

我们知道,程序设计方法学,是研究程序设计理论的学科.我们以前程序设计,有抠机器代码的阶段(呵呵J,相当辛苦),后来出现了过程化程序设计,结构化程序设计,到现在的面向对象程序设计,大规模程序设计方法学等等.的确,程序设计方法理论的进步,帮我们解决了许多问题.我们的程序设计方便了,效率高了,可移植性好了,可重用性好了,易维护了,但是,它于算法要解决的不是同一问题.

所以谁也代替不了谁.无论哪方面,作为计算机科学与技术人员,我们都要掌握.

 

                                                      关于一些错误

 

文章是我现打的,没有底稿,所以出现了这样或那样的错误,还请大家原谅.尤其是网友zcr139, cadinfo,非常感谢您指出了我的失误与错误.

 

                                                    关于写作计划和参考资料

构思这些文章的时候,我准备:

(1)     综述,吹起向算法进军的号角吧J.

(2)     什么是算法,一篇,讨论算法的定义和算法的一些特点.其中算法的定义参考了康立山老师的<<智能计算及其应用  讲义>>.可惜本资料是我们学校的内部资料,是并行计算和演化计算的好书,但不能为大家所看到.

(3)     算法之根,计划两篇,Hilbert问题引出算法的本质问题,由代数结构和有穷自动机引出图灵机.介绍各种图灵机变形后,引出我心中的算法树,说明我们这次旅行的大致路线.其中图灵机定义和有关例子,参考了<<计算理论导引>>( Michael Sipser ,张立昂等译)一书.

 

如此,我们第一部分就可以结束了.最后仍然是感谢大家.对鼓励我的网友我心存感谢,对批评我指正错误的网友我心存感激,而对那些喜欢了算法,准备细细看书的网友,呵呵,我心存敬佩~~~~

 

后注:又是因为不能一篇发帖才分作两篇的.J.呵呵,为什么要限制呢.




相关文章

相关软件