软件工程

本类阅读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开发
计算机程序设计艺术(第I卷)(续2)

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

    3)输入    一个算法有0个或多个的输入。它即是,在算法开始之前,对算法最初给出的量。这些输入取自于特定的对象集合。例如,在算法E中,有两个输入,即m和n,它们都取自于正整数集合。
    4)输出    一个算法有一个或多个的输出。它即是,同输入有某个特定关系的量。算法E有一个输出,即是步骤E2中的n,它是两个输入的最大公因子。
    (此数确实是最大公因子,我们可以很容易证明如下。在步骤E1后,我们有
              m=qn+r
其中q是某个整数。若r=0,则m是n的一个倍数,且显然在这种情况下,n就是m和n的最大公因子。若r≠0,注意同时除尽m和n两数的任何数必定也除尽m-qn=r,而且同时除尽n和r两数的任何数必定也除尽qn+r=m;所以m和n的公因子的集合必定与n和r的公因子的集合相同,而且,特别地,m和n的最大公因子与n和r的最大公因子相同。因此步骤E3并不改变原来问题的答案)。
    5)能行性    一般说来,还期望一个算法是能行的。这意味着算法中所有有待实现的运算必须都是相当基本的,即是说,它们原则上都是能够精确地进行的,而且人们用笔和纸做有穷次即可完成。算法E仅仅使用一个正整数除以另一个正整数的除法,测试一个整数是否为0,并置一个变量的值等于另一个变量的值这样一些运算。这些运算都是能行的,因为整数可以用有穷的方式在纸上表示之,而且至少有一个方法(“除法算法”)来进行一个整数除以另一个整数的运算。但若两数之值是由无穷的十进展开所确定的任何实数,则同一运算就不是能行的。又若两数之值是不能精确地加以确定的物理线段的长度,则同一运算也就不是能行的。非能行的步骤的另一个例子是,“如果2是使方程 ‘x的n次方+y的n次方=z的n次方’ 有正整数解x,y,z的n当中最大的整数,则进行步骤E4”。这样一个语句不是一个能行的运算,除非有人能够说明有一个算法来确定2是否具有所说的性质的最大整数。

(未完待续)


相关文章

相关软件