第一章作业
(1)数学之美
1.《数学之美》第27章对“期望最大化算法”(EM)的诠释精妙至极,将其誉为“上帝的算法”堪称神来之笔。吴军博士剥开复杂的数学外壳,揭示了EM算法充满哲学美感的核心理念:面对不完美的、隐藏关键信息的数据世界,我们无需绝望,可以通过迭代与估计,无限逼近真理。
2.这种“先猜想,后验证,逐步优化”的思维范式深深震撼了我。它承认人类的认知局限(无法直接观测所有变量),却又不屈从于它,而是用严谨的数学方法,在黑暗中一步步摸索出完整图景。这不仅是数据科学的强大工具,更是一种普适的人生智慧——许多复杂问题都无法一蹴而就,唯有通过持续迭代、基于现有反馈不断调整策略,才能最终找到最优解。EM算法因而超越了工具本身,成为一盏指引如何从“未知”走向“已知”的明灯。
(2)算法规范
1.根据C++核心指南(C++ Core Guidelines)和Google C++风格指南,以下是与原案例类似的C++命名规范与代码格式规范:
命名规范
1.类型命名
类、结构体、枚举、类型别名:采用大驼峰命名法(UpperCamelCase)
class UserService; struct OrderDetail; enum class ColorMode; using AccountId = int;
2.变量与函数命名
变量名、函数名、参数名:采用小驼峰命名法(lowerCamelCase)
getUserInfo() inputUserId localValue calculateTotalPrice()
3.常量与枚举值
常量名:全大写,单词间用下划线分隔
枚举值:推荐全大写,或按常量方式命名
const int MAX_BUFFER_SIZE = 1024; enum class State { IDLE, RUNNING, ERROR };
4.文件命名
头文件/源文件:使用小写+下划线
user_service.h order_manager.cpp
5.宏命名
全大写+下划线(尽量少用宏)
ifndef HEADER_GUARD_NAME
二、代码格式规范
1.缩进
使用2个空格缩进(非4个空格,与Java区别开)
严禁使用Tab字符
2.行宽限制
单行字符数不超过80个(C++传统标准)
超长表达式换行时:
运算符放在行末
第二行相对第一行缩进2个空格
函数调用参数换行时,垂直对齐