算法设计p1
本学期我参考了多家大公司的编码规范,结合课程要求,制定了以下主要编码规范:
命名规范:变量、函数、类名必须使用有意义的英文单词,采用小驼峰(camelCase)或下划线(snake_case)命名法,禁止拼音和缩写。
代码格式:统一使用4个空格缩进;if、for等语句即使只有一行也必须加大括号;操作符和逗号后必须加空格;每行代码不超过80~120字符。
函数设计:每个函数只做一件事,长度不超过一屏(约50行),参数不宜过多,优先提取公共逻辑。
注释与文档:对复杂算法、函数接口和关键决策点写简洁注释;函数头部用注释说明功能、参数、返回值及异常处理。
错误处理与复用:统一使用异常或错误码返回,严禁裸指针;重复代码必须提取为函数或模块,优先使用标准库。
目录与结构:源码、测试、文档分目录存放;模块按功能划分,接口与实现分离,保持单一职责。
《数学之美》第21章读后感:拼音输入法的数学原理
本章把“拼音转汉字”抽象为“在带权有向图中寻找最短路径”的问题,让我第一次意识到日常打字的流畅体验背后,竟是动态规划与图论在支撑。作者将输入法的三阶段演变——自然音节编码→偏旁笔画拆字→回归自然音节——放在信息压缩与噪声消除的框架下讨论,使我深刻体会到“编码长度”与“歧义性”之间永恒的权衡。更令我兴奋的是,书中指出今天的主流输入法把语言模型(n-gram 或神经网络)嵌入边的权值,实时根据上下文调整路径代价,这正是我在自然语言处理课程里学过的语言模型与维特比算法的落地场景。读完回头再看手机键盘,每一次候选词的跳动都像在对我眨眼:数学不仅藏在图书馆的公式里,更藏在指尖的每一次轻敲。