计算机程序设计艺术(第I卷)(续2)

    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是否具有所说的性质的最大整数。

(未完待续)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值