算法第一章作业
一、代码规范
1.代码格式
① 程序块:采用缩进风格编写,缩进4个空格(使用 TAB 键--设置 TAB 键的空格数目为 4 格)
② 相对独立的程序块、变量说明之后必须加空行
- 函数之间应该用空行分开
- 变量声明应尽可能靠近第一次使用处,避免一次性声明一组没有马上使用的变量
- 用空行将代码按照逻辑片断划分
- 每个类声明之后应该加入空格同其他代码分开
③ 较长的语句(>120字符)要分成多行书写
- 长表达式要在低优先级操作符处划分新行,操作符放在新行之首,且新行进行适当的缩进
- 若函数或过程中的参数较长,则要进行适当的划分
④ 不允许把多个短语句写在一行中,即一行只写一条语句
⑤ if、 for、 do、 while、 case、 switch、 default 等语句自占一行,且 if、 for、do、 while 等语句的执行语句部分必须加括号{}
⑥ 代码行之内应该留有适当的空格
- 关键字之后要留空格。函数名之后不留空格, 紧跟左括号‘(’ , 以与关键字区别
- 如 const、 virtual、 inline、 case 等关键字之后至少要留一个空格, 否则无法辨析关键字
- 如if、 for、 while 等关键字之后应留一个空格再跟左括号‘( ’, 以突出关键字
- ‘(’ 向后紧跟,‘)’、‘,’、‘;’ 向前紧跟, 紧跟处不留空格
- ‘,’ 后要留空格
- 值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符,如“=”、“+=”“>=”、“<=”、“+”、“*”、“%”、“&&”、“||”、“<<” 、“^” 等二元操作符的前后应当加空格
- 一元操作符如“!”、“~”、“++”、“--”、“&”( 地址运算符) 等前后不加空格
- “[ ]”、“.”、“->” 这类操作符前后不加空格
2.注释规范
① 函数头部应进行注释,列出:函数的目的/功能、输入参数、输出参数、返回值等
② 注释的内容要清楚、明了,不能有二义性
③ 注释的主要目的应该是解释为什么这么做,而不是正在做什么
④ 注释的版式
- 注释应与其描述的代码相近,对代码的注释应放在其上方或右方(对单条语句的注释)相邻位置,不可放在下面,如放于上方则需与其上面的代码用空行隔开
- 注释与所描述内容进行同样的缩排
- 将注释与其上面的代码用空行隔开
- 变量、常量、宏的注释应放在其上方相邻位置或右方
⑤ 对于所有有物理含义的变量、常量,如果其命名不是充分自注释的,在声明时都必须加以注释,说明其物理含义
⑥ 数据结构声明(包括数组、结构、类、 枚举等), 如果其命名不是充分自注释的, 必须加以注释。
- 对数据结构的注释应放在其上方相邻位置,不可放在下面
- 对结构中的每个域的注释可放在此域的右方
⑦ 分支语句(条件分支、循环语句等)需编写注释
3.命名规范
① 命名尽量使用英文单词,力求简单清楚,避免使用引起误解的词汇和模糊的缩写,使人产生误解
② 代码中的命名严禁使用拼音与英文混合的方式
③ 常量命名全部大写,单词间用下划线隔开
④ 注释掉的代码尽量要配合说明,而不是简单的注释掉
二、《数学之美》读后感
从前我总觉得数学是课本上的呆板数字符号,离现实生活很遥远,但是最近阅读的《数学之美》改变了我的看法。
在《数学之美》里,吴军博士了结合数学发展的历史与实际案例,系统阐述与现代科技相关的重要数学理论的起源、发展和其作用。
真理往往是简单的,而数学就可以让复杂的问题简单化。书中最令我印象深刻的例子就是最初自然语言处理采用的是人写的文法规则,并且由人来总结文法。但是很快这种方法遇到了巨大的障碍,因为句法分析实际上是一件很啰嗦的事,这里主要出现两个问题:1.工作量大到无法实现。2用计算机的上下文无关法难以解析句法的上下文法有关。
直到1970年,统计语言学的出现才使得自然语言处理重获新生。
弗里德里克·贾里尼克和他领导的IBM华生实验室采用统计的方法,将IBM的语音识别率从70%提高到90%,使得语音识别有可能从实验室走向实际应用。从这里便可窥知,有时候简单比复杂更有力量,真理往往就存在于简单之中。而正如吴博士所说:“数学的魅力在于将复杂的问题简单化”。
用统计法计算出句子的可能性是极简的实现复杂的上下文关系的好方法。同时应用简便的马尔可夫模型与隐形马尔可夫模型就能极优的实现联系上下文。同样的利用数学实现繁琐工作的实际应用还有布尔代数。复杂的索引看似难以实现,但是利用原理极其简单的布尔代数就能完美达成。这些实例应用都启示我,在追求真理的路上简单有时候不复杂的高深莫测更有力量,重要的是对问题的理解和对应模型的提炼,而且如果这一步做得好的话,简单往往比复杂更有力。
在《数学之美》一书中,吴博士并非只讲述数学原理和数学模型的应用,而是用了大量篇幅介绍各个领域的典故和人物故事,如辛格追求简单有效,鼓励大胆试错;柯林斯追求完美,实践“繁琐哲学”;布莱尔总是试图寻找简单得不能再简单的方法等等。这使我在读此书时感到十分有趣,同时通过这些典故和故事,我了解了思想是何时提出并且为何提出,并且也对各位大师的思想性格和思维方式有了更好的体会,明白了伟人为什么为伟人,作为新时代的青年我们应该怎么做才能一步步靠近伟人,成为伟人甚至超越伟人。
读了《数学之美》我受益良多。感谢吴军博士让我改变了我的数学的错误认识,也让我体会到了科学精英的才智与情怀,我会带着从中学到的知识和道理进入大学校园,并将它们加以学习实践,让它们更好的指导我的学习和生活。
浙公网安备 33010602011771号