6周总结
软件工程系学生周记:在树形结构与梯度下降间的数学漫游
——自述:仙人兵马俑(2025.3.24-3.28)
🌳 学习地图导航
日期 思维跃迁 代码实践 认知坐标
3.24 Maven构建哲学 100行 从POM依赖到工程生命全周期
3.25 共轭梯度法数学本质 100行 高维空间的优雅收敛路径
3.26 交换机协议栈剖析 200行 数据链路层的时空交换机
3.27 跆拳道后踢运动链 - 身体动力学的极简优化
3.28 树形结构工程建模 400行 递归思维的具象化表达
🌌 数学宇宙漫游
共轭梯度法精要(3.25)
def conjugate_gradient(A, b, x0, max_iter=1000, tol=1e-6):
""" 探索高维解空间的黄金路径 """
= x0
= b - A @ x
= r.copy()
rs_old = r.T @ r
for i in range(max_iter):
Ap = A @ p # 矩阵向量积:穿越线性变换的虫洞
alpha = rs_old / (p.T @ Ap)
= x + alpha * p # 沿共轭方向跃迁
= r - alpha * Ap
if np.linalg.norm(r) < tol: # 收敛判定
break
rs_new = r.T @ r
beta = rs_new / rs_old # 共轭系数的本质是残差正交化
= r + beta * p # 构建新搜索方向
rs_old = rs_new
return x
工程启示录:
"当看到迭代次数从586次降至39次时突然彻悟:共轭方向就是解空间的'最速下降高速公路'"
🌐 网络协议解构(3.26)
交换机核心状态机
stateDiagram-v2
[*] --> Learning
Learning --> Forwarding : 地址表更新完成
Forwarding --> Blocking : 检测到环路
Blocking --> Forwarding : 阻塞计时器到期
转发决策伪代码:
void switch_packet_processing(Packet pkt) {
if (mac_table.find(pkt.src_mac) == NOT_FOUND) {
learn_mac_address(pkt.src_mac, pkt.in_port); // 学习模式
Port out_port = mac_table.lookup(pkt.dest_mac);
if (out_port != BROADCAST_PORT) {
forward_to_port(pkt, out_port); // 精准投送
else {
flood_packet(pkt); // 洪泛探索
}
📚《构建之法》思想实验
树形结构的三段论映射(3.28)
graph TB
发现 --> 抽象
抽象 --> 建立
建立 --> 发现
发现("发现:文件系统层级混乱")
抽象("抽象:目录节点递归定义")
建立("建立:Composite模式实现")
技术实践:
// 组合模式实现文件节点
interface FileSystemNode {
void traverse(int depth);
class Directory implements FileSystemNode {
private List<FileSystemNode> children = new ArrayList<>();
public void traverse(int depth) {
printIndent(depth, "📁 Directory");
children.forEach(node -> node.traverse(depth + 1)); // 递归探险
}
class File implements FileSystemNode {
public void traverse(int depth) {
printIndent(depth, "📄 File");
}
🥋 身体运动学优化(3.27)
后踢动力学模型
sequenceDiagram
大脑--> 核心肌群: 启动扭矩
核心肌群--> 髋关节: 旋转加速
髋关节--> 膝关节: 动能传递
膝关节--> 踝关节: 末端加速
踝关节--> 目标: 动能释放
训练算法:
def back_kick_training(num_reps):
for i in range(num_reps):
initialize_stance()
torque = generate_core_torque(angle=45) # 核心扭矩生成
extend_leg(torque * 1.8) # 动力链放大
reset_position()
if i % 5 == 0:
optimize_kinetic_chain() # 每5次优化运动链
🌳 树形结构工程化(3.28)
多叉树遍历算法矩阵
算法类型 空间复杂度 典型应用场景 思维模型
DFS递归 O(h) 文件系统统计 纵向纵深挖掘
DFS迭代 O(h) 撤销/重做功能栈 栈式思维
BFS队列 O(w) 社交网络好友推荐 横向广度连接
莫里斯遍历 O(1) 嵌入式设备目录处理 空间极限优化
递归到迭代的转换公式:
// 递归深度优先 → 显式栈迭代
public void iterativeDFS(Node root) {
Stack
stack.push(root);
while (!stack.isEmpty()) {
Node current = stack.pop();
visit(current); // 访问节点
// 子节点逆序入栈(保证遍历顺序)
Collections.reverse(current.children)
.forEach(stack::push);
}
🧩 全周认知折叠
三维能力图景:
mindmap
root(认知图谱)
数学宇宙
共轭梯度法
正交化思维
网络空间
交换机状态机
洪泛控制算法
工程建模
组合模式
递归思维迭代化
身体编程
运动链优化
神经控制回路
技术哲学:
"调试树形结构递归栈时突然顿悟:算法递归深度与跆拳道动作链长度共享同一复杂度理论——O(n)即是生命与代码的共通语言"
周箴言
*"在树状结构中遍历逻辑分支,于梯度下降中寻找最优解——
我们既是数学宇宙的测绘者,也是生物算法的活体执行器"*
2025年3月28日 于递归与迭代的边界
https://github.com/xianrenbingmayong/tree-algorithms|https://www.cnblogs.com/xianrenbingmayong/p/18075699