上来就是欧几里得,你怕不怕?

上一篇:https://blog.csdn.net/qq_43057060/article/details/95171427

正文

Algorithm EEuclid’s Algorithm).已知两个正整数m和n,求他们的最大公约数,就是说,最大的,可以被m和n整除的数
E1[求余]将r设为m/n的余数(在此之后,将会有0<=r<n)
r=m%n

E2[是否为零]如果r=0,结束此算法,n为解
if(r=0)return n;

E3[更新状态]m <- n;n <- r;跳转到E1
m=n;n=r;goto E1

//这是作者(不是高德纳)给出的示例代码
public int gcd(int m,int n){int r;while(true){r=m%n;if(r==0)return n;m=n;n=r;}
}

当然,欧几里得不是这么写的,但我会把之后的所有算法都用这种方法表示出来。
对于所有的算法我都会给它一个唯一的ID字母(比如这里的E),
并且它的每一步的标识都会是此字母+一个数字(E1,E2,E2)
章被分为数个由‘.’作为标识的节。在同一节中,算法的编号将只有一个字母,而在其他节中,算法的标识将会是节号+字母。
比如说,我们现在是第1.1节,在这一节,欧几里得算法被称为算法E,在以后的节中,欧几里得算法的编号就会是算法1.1E
算法的每一步,比如说E1,将会由一对方括号开始,里面包括对此步骤的概括,此词通常会在此算法的流程图中出现。像(图1)这样我们就可以用图形化的方式来让算法更可读

Created with Raphaël 2.2.0EE1E2return nE3yesno
图一:欧几里得算法的流程图

图一:
在将算法归结为对数据和符号的操作(赋值,函数,±x/)和一些选择(if)之后。()内的注释,就像E1的第二句句子

"(在此之后,将会有0<=r<n)"

将会出现。注释将包含关于此步的解释性信息,通常包含关于当前变量或目标的不变的特征

(无论m和n是哪两个正整数,对于m除以n的余数m%n,总有0<=m%n<n,不是吗)

它们对于代码的行为没有影响,但它们使代码的阅读者更容易看懂并理解代码。
E3中的 <- 指最重要的替换,有时称为置换或赋值:“m <- n”的意思是将变量m的值设为变量n的值。在算法E开始时,m和n的值是初始给定的值(实参),但当它结束时,一般来说,这些变量将会有不同的值.

连个赋值都这么复杂,果然是高德纳

一个箭头(" <- “)用于区别赋值和比较(=和==):我们不会说"设x=y”,但可能会问"x=y吗?"

在座放心,我从下一章开始不会用<-的,因为那输入法不友好,我还是会用 =和==

所以 = 表示一个可以被测试的条件, <- 表示一个可以被执行的操作.将n加一的操作表示为n <- n+1(读作“n被替换为n+1”或者“n gets n+1”)一般来说,"变量 <- 表达式"的意思是用表达式中出现的变量的当前值进行计算,再用结果把 <- 左边的变量的值替换掉.没有经过编程训练的人有时倾向于"n变成n+1"之类的写法,并把代码写成n -> n+1 来完成N+=1的功能.

连个++i都能说这么多,再来一个膝盖.

顺便水水字数
这样的语法只能导致混乱,应为它和标准语法冲突,并且它应当被拒绝.


今天就到这儿了,下篇继续


Thanks For Reading


下一篇:https://blog.csdn.net/qq_43057060/article/details/95490588

TAOCP-Reading-计算机程序设计艺术阅读-1-1相关推荐

  1. Medium - 《计算机程序设计艺术》发展史

    来自 计算机程序设计艺术 一些在书架上的书看着如此美丽,不仅仅是因为装帧美,而且书脊上表达了关于主人的话.Donald Knuth 的四精装卷的"计算机程序设计艺术" - 四个很贴 ...

  2. 敏感性分析算法 程序_计算机程序设计艺术(TAOCP)精读笔记1 - 算法分析真正应该有的样子 Part 1...

    系列文章的导航链接: 张浩驰:<趣味算法>专栏所有文章分类 - 导航​zhuanlan.zhihu.com 下篇文章Part 2导航: 张浩驰:计算机程序设计艺术(TAOCP)精读笔记1 ...

  3. 你这辈子可能都不需要看《计算机程序设计艺术》了!

    "欣哥, 我什么时候可以看<计算机程序设计艺术>? " "你这辈子可能都不需要看了!" 我在大学的时候并不知道<计算机程序设计艺术>(简 ...

  4. 披阅十载,84岁图灵奖得主高德纳的《计算机程序设计艺术:卷4B》终于出版

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送 来自:机器之心 从博士期间的一个决定开始,高德纳已经坚持写了 50 年. 刚刚,84 岁 ...

  5. 计算机程序设计艺术 介绍

    <计算机程序设计艺术 >(The Art of Computer Programming ),簡稱TAOCP,是高德纳 (Donald Ervin Knuth)编著的关于计算机程序设计的七 ...

  6. 计算机程序设计艺术 第1卷 第1册 (双语版)

    计算机程序设计艺术 第1卷 第1册 (双语版) 作 者:Donald E.Knuth |苏运霖 出版社:机械工业出版社 日 期:2006年4月 开 本:16开    版 次:1次 页 数:268页 装 ...

  7. 计算机大师高德纳权威著作《计算机程序设计艺术》影印版精装版已经入库,即将上市!

    <计算机程序设计艺术>系列著作对计算机领域产生了深远的影响.这一系列堪称一项浩大的工程,自 1962年开始编写,计划出版 7卷,目前已经出版了 4卷.<美国科学家>杂志曾将这套 ...

  8. 《计算机程序设计艺术》pdf

    下载地址:网盘下载 内容简介 编辑 本书作者D. E. Knuth是在计算机学界十分著名的学者,在本领域享有很高权威和盛名,他的这部著作是无数计算机专业人员的学习教材和参考读物,也是许多专业研究工作者 ...

  9. 计算机程序设计艺术读后感,计算机程序设计艺术(第1卷)读后感1000字

    <计算机程序设计艺术(第1卷)>是一本由[美] Donald E. Knuth著作,清华大学出版社出版的精装图书,本书定价:80.00元,页数:650,特精心从网络上整理的一些读者的读后感 ...

  10. 82岁高龄的高德纳仍在写《计算机程序设计艺术》,那是他未完成的人生目标...

    本文转载自:程序员书库 编译:猿妹 链接: https://www.quantamagazine.org/computer-scientist-donald-knuth-cant-stop-telli ...

最新文章

  1. 深度学习中的双下降现象
  2. [日更-2019.5.2、3、4] 关于JVM的概略分析
  3. 利用尾递归减少栈空间的消耗
  4. ue4加速度_ue4粒子实现流血效果
  5. {HTML5}JQueryMobile页面跳转参数的传递解决方案
  6. No module named Crypto--转
  7. VTK:Video之FFMPEG
  8. oracle 递归计算,SQL(Oracle)中的递归计算
  9. 20个非常棒的Jquery实用工具 [转]
  10. 老兵不死:Radionomy正式宣布收购Winamp
  11. Honeywell 1900 条码阅读器
  12. jQuery 版本升级迁移
  13. 使用libyuv对YUV数据进行缩放,旋转,镜像,裁剪等操作
  14. 今秋如何让自己的C币也来个大丰收
  15. 网易互娱2022校园招聘在线笔试题 — 游戏测试开发工程师2021.8.28(回忆版)
  16. hdu 5773 (The All-purpose Zero)
  17. 京东实习测开HR面(过)
  18. python怎么导出_Python 数据分析(三):数据的导入导出
  19. java/js中语音提醒功能的实现
  20. 锚定物决定成败?四国央行数字货币对比

热门文章

  1. 堆栈平衡(子程序调用)
  2. 汇编堆栈平衡的几种方式
  3. 红帽子 linux启动盘,红帽子Red Hat Linux 9 光盘启动安装过程图解
  4. LibFetion 应用程序
  5. 思科九年(转载自Internet)
  6. 【项目实战一】基于人工神经网络ANN的车牌识别
  7. ACDSee Photo Studio 7 for Mac(最好用的图像处理软件)
  8. tracert/traceroute原理
  9. 深度学习?不一定非得搞“黑箱”
  10. 基于数据挖掘的商业银行客户关系管理系统应用研究