算法第一章作业
1、代码规范:
为了保障公司项目代码的易维护性和编码安全性,国内各大知名公司都对自己员工的编码有一定要求。本人在网上参考了几篇博文,总结了他们对C++的相关要求,希望自己可以尽快适应这种代码规范。
<1>缩进规范:
缩进统一要求4个空格,只能使用空格键,不允许使用tab键
<2>空行分隔:
①函数间要用空行区分开
②从逻辑层面考虑,相对独立的程序块要用空行隔开
<3>长度规范:
①超过80字符的语句需要分行书写
②禁止将多个短句写在同一行
<4>括号规范:
if、for、do、while、case、switch、default等语句自占一行,且if、for、do、while等语句的执行语句部分无论多少都要加括号{}
<5>注释规范:
①源文件的头部应该给出注释,并且标识出日期、作者、模块目的或功能等
②函数的头部要给出注释,并且标识出函数目的或功能、输入参数、输出参数、返回值等
③注释时尽量避免陌生术语或缩写
④注释排版整齐,要求与代码规范类似
<6>命名规范:
①尽量采用英文命名
②命名规范与系统风格保持一致
2、对《数学之美》的感想和体会:
最近,我阅读了吴军先生的《数学之美》。与以往自己在乏味枯燥的数学课本上学习到的知识不同,吴军先生用简单幽默的语言,配上生动绘色的插图,让我再次领会到数学的魅力。
在这本书中,吴军先生由浅入深、层层递进。从一开始解释语言与信息数学的关系,一直到后来数学在计算机各个领域中起到的关键作用。其中给我留下深刻印象的,莫过于自然语言的处理。
自然语言的产生及发展并非想象当中的一帆风顺。受历史以及西方语言学习的限制,尽管早期有无数聪明绝顶的科学家进行思想碰撞,但他们对自然语言的理解总和竟比不上如今一流大学的博士毕业生。因此,直到20世纪70年代,对语义的研究和分析仍然进展缓慢。后来,统计学的出现使得自然语言的处理重获新生,从原来的基于规则到后来的基于统计。通过构建统计模型,计算一句话中每个字词的出现概率,从而来评判这句话的合理性。例如对于有n个字词的句子s,有s=w1,w2,w3...wn,那么p(s)=p(w1,w2,w3...wn)。根据条件概率的知识,直到字词wn,它的出现概率取决于前面所有字词。但是这种统计模型也有它的弊端,对于冗长的句子,概率的统计则变得复杂。所以后来又出现了马尔可夫的假设(二元模型)以及后来的N元模型。数学统计模型的出现使得人们对自然语言处理又进一步认识与发现。
此外,数学还在计算机很多领域发挥作用。无论是基于图论知识的爬虫,还是基于余弦定理的新闻分类,计算机的发展都离不开数学。这也启示我在将来的学习中,既要注重计算机理论知识,也要弄懂数学其中的奥秘。