自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(142)
  • 收藏
  • 关注

原创 第十五期:终局之战 —— 竞赛策略、模板总结与思维提升

欢迎来到本系列的收官之作!恭喜你坚持到了最后。此刻,你的“兵器库”中已经装满了 STL 的利器,“武功秘籍”也已涵盖了从动规、图论到数论的各种招式。但要驰骋赛场,你还需要掌握“兵法”——竞赛的策略,以及将所有知识融会贯通的“武学心法”——算法思维。本期,我们将完成从“武者”到“宗师”的最后一步蜕变。我们将:分享算法竞赛中的实战策略,包括时间分配和题目 triage。介绍竞赛选手必备的“杀手锏”级查错工具——对拍。探讨如何构建一套属于你自己的个人代码模板库。对整个系列的算法思维进行一次。

2025-08-10 20:12:30 540

原创 第十四期:数学之美 —— 基础数论:质数、GCD 与模运算

欢迎来到本系列的第十四课!数学是计算机科学的基石。在算法竞赛中,许多问题的背后都隐藏着深刻的数学原理。掌握基础的数论知识,能够让你在面对某些问题时,找到比常规数据结构更简单、更高效的“降维打击”方法。本期核心内容质数 (Prime Numbers):学习如何高效地判断一个数是否是质数,并掌握两种强大的质数筛法——埃氏筛和欧拉筛。最大公约数 (GCD):深入理解数学史上最经典的算法之一——欧几里得算法。模运算 (Modular Arithmetic):探索“钟表算术”的世界,并攻克其中的核心难题——求解。

2025-08-10 20:06:24 742

原创 第十三期:区间问题利器 —— 树状数组 (BIT) 与线段树

欢迎来到本系列的第十三课!面对动态的区间查询问题,我们需要一种能够在O(log n)的时间内,同时完成“单点更新”和“区间查询”的数据结构。树状数组 (Binary Indexed Tree, BIT):也称芬威克树 (Fenwick Tree),它代码极其简洁,常数极小,是解决“单点更新,区间求和”问题的首选。线段树 (Segment Tree):一种功能更强大、更通用的树形数据结构,能够解决更复杂的区间问题(如区间最值、区间修改等)。掌握这两种数据结构,是算法竞赛选手从中级迈向高级的“必经之路”。

2025-08-10 20:03:18 627

原创 第十二期:字符串专题 —— KMP、Trie 与字符串哈希

欢迎来到本系列的第十二课!字符串是程序中最常见的数据类型之一,围绕它产生的算法问题层出不穷。如何在一个长文本中快速查找一个模式串?如何高效地管理和查询一个巨大的词典?如何快速判断两个子串是否相等?KMP 算法:我们将深入理解其“无回溯”匹配的精髓,彻底搞懂其核心——next数组的构造原理。Trie (前缀树):学习这种为字符串和前缀查询量身定做的数据结构。字符串哈希:掌握一种巧妙的“降维打击”技巧,用一个数字来“指代”一个字符串,实现O(1)的子串比较。KMP 算法:实现了无回溯的、线性的模式串匹配。

2025-08-10 19:59:36 756

原创 第十一期:图论基础 —— 最短路、最小生成树与拓扑排序

欢迎来到本系列的第十一课!图,作为一种能够描述万物互联关系的强大数据结构,其相关算法是解决网络、物流、社交、依赖关系等众多问题的基础。在第七期,我们学习了如何“遍历”一个图(DFS/BFS),而本期,我们将学习如何“度量”和“优化”一个图。最短路径算法:解决从 A 点到 B 点怎么走“最近”的问题,包括单源的DijkstraSPFA和所有点对的Floyd算法。最小生成树算法:解决如何用“最小代价”连通所有点的问题,包括Prim和Kruskal算法。拓扑排序。

2025-08-10 19:56:56 846

原创 第十期:动态规划进阶 —— 背包、区间与树形 DP 模型

欢迎来到本系列的第十课!如果说一维 DP 是动态规划的“平原”,那么本期我们将要探索的就是 DP 世界里的“丘陵”与“山地”。背包、区间和树形 DP,是动态规划领域中结构最典型、应用最广泛、变种最多的三种模型。彻底掌握它们,你将能够解决一大半的 DP 面试题,并为挑战更复杂的组合优化问题打下坚实的基础。我们将继续沿用“DP 解题四部曲”框架,来系统性地攻克这些难题。背包问题教会了我们如何处理带“约束条件”的最优选择问题,并引入了二维 DP 及其空间优化。区间 DP。

2025-08-10 19:52:06 994

原创 第九期:动态规划入门 —— 从记忆化搜索到递推

欢迎来到本系列的第九课!动态规划是算法领域的一颗璀璨明珠,也是各大技术公司面试中,区分候选人算法能力的重要分水岭。将一个大问题,拆解成一堆相互关联的小问题,并通过记住(缓存)小问题的答案,来避免重复计算,最终高效地构建出大问题的解。本期,我们将彻底揭开 DP 的神秘面纱。理解 DP 的两大核心性质:最优子结构与重叠子问题。通过斐波那契数列自顶向下 (Top-Down)的记忆化搜索。自底向上 (Bottom-Up)的递推(表格法)。通过爬楼梯问题,巩固并应用我们学到的 DP 解题框架。动态规划。

2025-08-10 19:49:50 1005

原创 第八期:广度探索 —— 广度优先搜索 (BFS) 及其应用

欢迎来到本系列的第八课!如果说 DFS(深度优先搜索)像一个执着的探险家,喜欢沿着一条小路走到尽头再返回,那么 BFS(广度优先搜索)则像一个谨慎的侦察兵,总是先把当前位置四周的所有情况都探明,然后再整体向前推进一层。在无权图中,它找到的从起点到终点的第一条路径,必然是最短路径。这个特性使它成为解决一大类最短路径和最小步数问题的核心工具。本期核心内容深入 BFS 的队列实现,理解其“层序”遍历的本质。应用 BFS 进行树的层序遍历。应用 BFS 解决无权图最短路径问题(如走迷宫)。

2025-08-10 19:45:56 830

原创 第七期:深度探索 —— 递归、回溯与深度优先搜索 (DFS)

欢迎来到本系列的第七课!你是否曾面对这样的问题:“一个集合的所有子集是什么?”、“一副扑克牌有多少种排列方式?这类问题需要我们不重不漏地穷举出所有可能的方案。暴力尝试往往会让我们陷入混乱,而递归则为我们提供了一种结构清晰、代码优雅的描述方式。回溯算法正是在递归的基础上,建立起的一套系统性的“试错”框架。它本质上是一种深度优先搜索 (DFS)策略,像一个不知疲倦的探险家,深入每一个可能的分支,当发现此路不通时,又能优雅地“回溯”到上一个岔路口,继续探索其他路径。本期核心内容理解递归的本质:通过函数调用栈。

2025-08-10 19:43:26 314

原创 第六期:基础算法思想 —— 贪心、二分与双指针

欢迎来到本系列的第六课!掌握了 STL,我们已经能写出简洁的代码。但要让代码变得“聪明”和“高效”,我们需要掌握真正的算法思想。本期将要学习的三种思想,是所有算法学习者都必须精通的基础招式。贪心算法 (Greedy Algorithm):教我们如何做出“短视”但常常有效的决策。二分查找 (Binary Search):不仅是一种查找方法,更是一种强大的“答案逼近”思想。双指针 (Two Pointers):一种神奇的技巧,能将许多O(n²)的暴力解法优化到O(n)。贪心算法。

2025-08-10 19:40:58 765

原创 第五期:algorithm 头文件的“神兵利器” —— 排序、查找与常用函数

欢迎来到本系列的第五课!在算法竞赛中,时间就是生命。你是否曾因为手写一个 bug 百出的二分查找而浪费宝贵的时间?是否曾因为需要一个全排列而不知从何下手?STL 的algorithm头文件正是为了解决这些问题而生。它将那些最常用、最基础的算法操作,封装成了即用即走的函数。“永远不要重新发明 STL 已经为你完美实现的轮子”,这是每一个 C++ 竞赛选手都应牢记的准则。本期核心内容精通竞赛中的“王者”—— std::sort及其自定义用法。掌握二分查找的“三板斧”—— binary_search。

2025-08-10 19:38:09 627

原创 第四期:哈希的力量与优先之选 —— unordered_map, unordered_set 与 priority_queue

欢迎来到本系列的第四课!在算法的世界里,对效率的追求是永恒的主题。当你不需要维护元素的顺序,只关心**“是否存在”或“键值映射”**时,map的O(log n)性能是否还有提升空间?答案是肯定的,这就是和的舞台。当你需要从一个动态集合中,不断地获取最大或最小的元素时,有没有比“每次都排序”更高效的方法?答案也是肯定的,这就是的使命。本期,我们将:掌握基于哈希表的和,理解其O(1)平均查找效率的来源。深度剖析(优先队列) 及其底层堆 (Heap)的实现原理。和 unordered_map。

2025-08-10 19:35:29 928

原创 第三期:STL 适配器与关联式容器 —— stack, queue, map, set

欢迎来到本系列的第三课!并非所有的数据操作都需要vector那样“完全暴露”的接口。有时,我们需要的仅仅是“后进先出”或“先进先出”的简单行为。为此,STL 提供了容器适配器。另一方面,当我们需要存储一个集合,并随时保持其有序状态,或者需要根据一个“键”快速查找一个“值”时,线性容器的O(n)查找效率就显得捉襟见肘了。为此,STL 提供了基于红黑树的、拥有O(log n)级别高效操作的关联式容器。本期核心内容学习stack(栈) 和queue(队列) 这两种容器适配器的用法。深入基于红黑树的map和。

2025-08-10 19:32:10 805

原创 第二期:STL 线性容器精讲 —— vector, string, deque 的妙用

欢迎来到本系列的第二期!在算法竞赛中,我们打交道最多的就是各种“序列”——一组数字、一个字符串、一个操作序列。如何高效地存储和操作这些序列,直接决定了我们解题的效率和代码的性能。STL 提供了多种线性容器,但vectorstringdeque无疑是其中最重要、最高频的三个。深度剖析:不仅学习其用法,更要理解其背后的动态扩容机制,这是面试和性能优化的关键。玩转:掌握其丰富的常用操作,并了解其小字符串优化 (SSO)的“黑科技”。认识std::deque:理解其“双端队列”的实现原理,以及它在何种场景下优于。

2025-08-10 19:29:13 833

原创 第一期:竞赛之始 —— C++ 环境配置、快速 I/O 与 STL 概览

欢迎来到《算法竞赛通关之路》系列!算法竞赛(ACM/ICPC, LeetCode 周赛等)是一项考验思维速度、代码实现能力和知识广度的智力运动。在这场“手速”与“脑力”的较量中,C++ 凭借其极致的运行效率和强大的标准模板库(STL),成为了无可争议的“官方语言”。本期作为整个系列的开篇,我们的目标不是解决任何具体的算法难题,而是“磨刀不误砍柴工搭建一个高效的本地算法竞赛环境,让你的IDE成为最强辅助。掌握竞赛必备的快速 I/O 模板,避免因读写缓慢而“超时(Time Limit Exceeded)”。

2025-08-10 19:26:39 987

原创 第七期:现代启发式算法与随机模型

欢迎来到本系列的最终章!当一个优化问题的解空间像宇宙一样浩瀚(例如,旅行商问题 TSP),或者当一个系统的行为充满了随机波动时(例如,顾客到达银行的时间),传统的精确算法就会显得力不-从心。现代启发式算法:学习受自然界启发的遗传算法、粒子群算法和模拟退火算法,它们是求解 NP-Hard 难题的利器。仿真与随机过程:掌握蒙特卡洛方法和随机游走,学会用计算机模拟来探索随机事件的规律。随机规划:初步了解排队论和库存论等模型,学会在不确定的世界中做出科学决策。在本期,也是本系列最后一期中,我们:学习了。

2025-08-09 17:14:31 898

原创 第六期:评价模型 —— 从主客观视角科学决策

欢迎来到本系列的第六课!评价模型是数学建模竞赛中必考的一大模块。它的核心任务是在综合考虑多个指标(标准)后,对一系列方案(备选对象)进行排序、择优或分类。一个好的评价模型,能够将复杂的、多维度的问题,转化为清晰、可量化的决策依据。主观评价法:当评价指标难以量化,需要依赖专家经验和主观判断时,如何将这些判断转化为科学的权重。我们将深入层次分析法 (AHP)。客观评价法:当有充足的数据时,如何完全依据数据本身的统计规律来确定权重和进行评价。我们将学习主成分分析 (PCA)和Topsis 算法。

2025-08-09 17:10:57 564

原创 第五期:经典优化(下)—— 动态规划与图论网络

欢迎来到本系列的第五课!当一个决策问题可以被分解成一系列相互关联的阶段,或者当问题本身可以被抽象成一个由点和线构成的网络时,我们就需要一套全新的、更具结构性的优化工具。动态规划 (Dynamic Programming):学习这种“化整为零,记忆求解”的强大思想,并探讨其在背包、区域、树形等问题上的应用。贪心算法 (Greedy Algorithm):理解这种“目光短浅”却常常异常高效的算法的本质。图论算法 (Graph Theory)

2025-08-09 17:07:40 941

原创 第四期:经典优化(上)—— 数学规划

欢迎来到本系列的第四课!想象一下这些场景:一个工厂如何在有限的工时和原材料下,安排生产计划以获得最大利润?一家物流公司如何规划运输路线,才能在满足所有配送需求的同时,使运输成本最低?一个投资经理如何配置投资组合,才能在控制风险的前提下,实现收益最大化?这些问题的共同点,都是在**“约束 (Constraints)”下,寻求“目标 (Objective)”的“最优解 (Optimal Solution)”**。数学规划正是解决此类问题的强大、通用的数学框架。本期核心内容。

2025-08-09 17:04:56 747

原创 第三期:预测之专题 —— 灰色、马尔可夫与 Logistic 模型

欢迎来到本系列的第三课!当面对一个预测问题时,一个建模者的工具箱里不应只有“锤子”(通用模型),还应该有“螺丝刀”、“扳手”等专用工具。灰色预测法 (Grey Forecast):专门处理“少数据、贫信息”问题的利器。马尔可夫预测 (Markov Chain):专注于预测事物状态转移的概率。Logistic 模型:用于描述和预测具有饱和趋势的 S 型增长过程。微分方程 (Differential Equation):作为多种动力学模型的数学基础。线性回归预测的是无限增长,但这在现实世界中常常是不可能的。

2025-08-09 17:01:31 715

原创 第二期:预测之进阶 —— 机器学习与智能预测

欢迎来到本系列的第二课!当变量间的关系不再是简单的直线,当预测的目标不再是单一的数值而是类别时,我们就需要更强大的工具。本期,我们将深入机器学习的世界,系统性地学习几大类在数学建模和数据科学竞赛中举足轻重的模型。我们将:探索四种经典的机器学习模型:决策树、支持向量机 (SVM)、朴素贝叶斯和 K-近邻 (KNN),理解它们各自独特的决策逻辑。学习“三个臭皮匠,顶个诸葛亮”的集成学习思想,并以AdaBoost算法为例。初步踏入人工智能的殿堂,了解神经网络和深度学习是如何解决极致复杂问题的。

2025-08-09 16:57:32 582

原创 第一期:预测之基石 —— 统计回归与时序分析

欢迎来到本系列的第一课!预测是数据科学与数学建模中最核心、最富有魅力的任务之一。无论是预测产品的销量、网站的流量,还是流行病的发展趋势,其背后都离不开强大的预测模型。回归分析 (Regression Analysis):专注于探索变量之间的关系。当一个变量(如广告投入)发生变化时,另一个变量(如产品销量)会如何变化?我们将深入线性回归、多项式回归等模型,并学习其核心的求解方法。时间序列分析 (Time Series Analysis):专注于分析数据点随时间演变的规律。

2025-08-09 16:54:48 947

原创 模块八:机器学习的前沿与其他范式

欢迎来到本系列的第八课!我们已经学习的模型,大多用于解决“预测”和“分类”这两大经典问题。然而,机器学习的世界远不止于此。当我们需要为用户打造个性化的体验时,如何从海量商品中推荐他最可能喜欢的那几个?当我们需要训练一个智能体在复杂环境中做出最优决策时,如何让它从与环境的交互中“试错”学习?当我们需要让机器不再仅仅是分析数据,而是开始“创造”内容时,背后的原理又是什么?推荐系统 (Recommendation Systems):个性化时代的“发动机”。

2025-08-09 16:01:11 526

原创 模块七:深度学习进阶:主流架构与应用

欢迎来到本系列的第七课!深度学习的真正威力,在于其能够自动从原始数据中学习富有层次的特征表示。这种能力是通过设计巧妙的、具有特定“归纳偏置”的网络架构来实现的。计算机视觉 (CV):我们将深入卷积神经网络 (CNN),理解它是如何通过“卷积”和“池化”,让计算机学会“看”懂世界的。自然语言处理 (NLP):我们将追溯其发展脉络,从经典的循环神经网络 (RNN)和LSTM,到当今一统江湖的架构,理解机器是如何学会“读”懂人类语言的。

2025-08-09 15:34:31 735

原创 模块六:深度学习入门:构建神经网络

欢迎来到本系列的第六课!深度学习是机器学习的一个分支,它由多层(“深”)的人工神经网络驱动。它的革命性在于,它能够实现“端到端”的学习——我们直接输入原始数据(如一张图片的像素矩阵),模型能够自动地、逐层地学习和抽取出从低级(边缘、纹理)到高级(物体部件、对象)的特征。这使得深度学习在计算机视觉、自然语言处理、语音识别等领域取得了前所未有的突破。追本溯源:从最简单的神经元模型——感知机,演进到现代的多层感知机 (MLP)。解构核心组件:学习构成神经网络的“齿轮”——激活函数、损失函数和优化器。

2025-08-09 15:28:39 522

原创 模块五:机器学习的工程实践 (The Engineering Practice - MLOps)

欢迎来到本系列的第五课!一个在 Jupyter Notebook 中跑出 99% 准确率的模型,距离一个能稳定产生商业价值的生产系统,还有着遥远的距离。这中间的鸿沟,就是工程实践。机器学习领域有句名言:“垃圾进,垃圾出 (Garbage In, Garbage Out)”。模型的性能上限,往往不是由算法的先进性决定的,而是由数据的质量和特征的优劣决定的。同时,一个模型只有被成功地部署到生产环境,并被持续地监控和迭代,才能真正发挥其价值。本期核心内容特征工程深入。

2025-08-09 15:01:06 874

原创 模块四:无监督学习:在未知中探索

欢迎来到本系列的第四课!想象一下,你面对着成千上万条用户行为数据,但没有任何标签告诉你哪些是“高质量用户”,哪些是“即将流失用户”。你该如何从中发现有价值的信息?这就是无监督学习要解决的问题。无监督学习的目标不是“预测”,而是“发现”。它像一位经验丰富的数据侦探,能够在看似杂乱无章的数据中,找到内在的规律。本期核心内容聚类分析 (Clustering):学习如何将相似的数据“物以类聚”。我们将深入K-MeansDBSCAN和层次聚类这三种不同思想的算法。

2025-08-09 14:57:14 474

原创 模块三:集成学习与模型之巅

欢迎来到本系列的第三课!一句古老的谚语说:“三个臭皮匠,顶个诸葛亮”。这正是集成学习的核心思想。它并不寻求找到那个“最好”的单一模型,而是通过一种系统性的方法,将多个“弱”学习器(通常是决策树)的“集体智慧”结合起来,从而获得远超任何单个学习器的、更强大、更稳定的性能。集成学习是 KAGGLE 等数据科学竞赛中获胜的“标配”,也是工业界解决复杂分类和回归问题的首选武器。本期核心内容Bagging 思想:学习“众人拾柴火焰高”的并行集成法,并深入随机森林。Boosting 思想。

2025-08-09 14:54:22 866

原创 模块二:监督学习经典模型

欢迎来到本系列的第二课!监督学习是机器学习的“核心引擎”,它通过从“带标签”的数据中学习,来获得预测未来的能力。无论是预测房价,还是识别垃圾邮件,其背后都是监督学习模型在工作。本期,我们将系统性地学习七种堪称经典的监督学习算法。对于每一种算法,我们不仅要了解它能“做什么”,更要直观地理解其“如何工作”的核心原理。线性模型:线性回归、逻辑回归及其对抗过拟合的“铠甲”——正则化。非线性模型:K-近邻(KNN)、支持向量机(SVM)、朴素贝叶斯和决策树。

2025-08-09 14:51:45 687

原创 第一期:你好,机器学习 —— 破除迷雾,看清三大范式与七步流程

欢迎来到“机器学习工程师养成计划”系列!您可能听说过机器学习、人工智能、深度学习等名词,感觉它们既强大又神秘。事实上,机器学习并非魔法,而是一门建立在数学、统计和计算机科学之上的、有着清晰工程路径的交叉学科。本期作为整个系列的开篇,我们的目标不是立刻去实现一个复杂的模型,而是要为您**“破除迷雾”**,建立起学习机器学习所必需的全局认知。学习机器学习的“语言”:直观地理解其背后的核心数学概念,并掌握 Python 科学计算“三驾马车”—— NumPy, Pandas, Matplotlib 的核心用法。

2025-08-09 14:33:35 979

原创 第十二期:课程总结 —— 从论文到代码,分布式系统设计思想回顾

欢迎来到本系列的最终章!当test-mr.sh和的最后一个Passed字样出现在屏幕上时,一段非凡的旅程便告一段落。完成 MIT 6.824,我们收获的不仅是一个个可以通过测试的项目,更重要的是,我们的脑海中已经建立起了一套关于如何构建复杂分布式系统的思维框架。本期,我们将对这次“修行”进行一次系统的复盘。回顾思想的演进:追溯我们学习过的几个关键系统(MapReduce, GFS, Raft, Spanner),看它们的设计思想是如何一步步演进和升华的。提炼核心设计原则。

2025-08-08 21:06:27 688

原创 第十一期:编程实训(四)—— Lab 4: 分片的 KV 存储服务

欢迎来到本系列第十一课,也是 6.824 课程的“毕业设计”。在 Lab 3 中,我们已经构建了一个坚固的、高可用的单体 KV 服务。现在,在 Lab 4 中,我们的任务是将这个“单体”打碎,重组成一个由多个独立 Raft 组构成的、可无限水平扩展的分片式(Sharded)KV 帝国。这个实验将综合运用并考验你之前学到的所有知识:Raft 共识、客户端/服务端 RPC 交互、并发控制、状态机设计。完成它,意味着你已经具备了设计和实现一个复杂分布式系统的核心能力。本期核心内容解构实验Clerk。

2025-08-08 21:03:45 796

原创 第十期:水平扩展的艺术 —— Sharding 与分布式事务

欢迎来到本系列的第十课!在 Lab 3 中,我们构建了一个高可用的、容错的 KV 服务。但这个服务的所有数据,都存储在一个Raft 集群中。存储容量受限于集群中单个节点磁盘的容量。写入吞吐量受限于单个 Leader 的处理能力。要突破这个瓶颈,唯一的办法就是将数据“切分”开,分散到多个独立的 Raft 集群上。这个过程,就叫做分片 (Sharding)或分区 (Partitioning)。理解 Sharding 的核心原理。

2025-08-08 21:01:26 621

原创 第九期:一致性的权衡 —— Spanner 论文与线性一致性

欢迎来到本系列的第九课!当数据被复制到多个节点上时,一个核心的问题便产生了:如果客户端向节点 A 写入了一个新值,那么客户端 B 在同一时刻从节点 C 读取,它会读到新值还是旧值?一致性模型就是系统与开发者之间,关于“读写操作在时间上如何排序”的一份契约。它定义了系统对外承诺的数据可靠性等级。不同的模型,在一致性强度、性能和可用性之间,做出了不同的权衡。本期,我们将:了解从最终一致性到线性一致性的谱系。深度剖析线性一致性的定义及其对程序的意义。精读论文,学习其利用实现全球级线性一致性的“黑科技”。

2025-08-08 20:57:44 521

原创 第八期:编程实训(三)—— Lab 3: 基于 Raft 的容错 KV 存储

欢迎来到本系列的第八课!在 Lab 2 中,我们打造了一台强大的“发动机”——Raft 共识模块。现在,在 Lab 3 中,我们的任务是为这台发动机装上“车身”和“方向盘”,造出一辆真正能对外提供服务的“汽车”——一个高可用的键值(Key/Value)存储服务。这个实验的核心,是学习如何将应用层逻辑(KV 存储)与**底层共识协议(Raft)**进行正确的“嫁接”。你将深刻体会到,一个容错的服务,远不止是简单地调用 Raft 库那么简单。本期核心内容解构实验。

2025-08-08 20:55:13 608

原创 第七期:构建高可用服务 —— Zookeeper 与 KV-Raft 论文精读

欢迎来到本系列的第七课!拥有一个像 Raft 这样的共识算法,就像拥有了一台强大的发动机。但只有发动机是造不出汽车的,我们还需要底盘、车身和方向盘。同样地,一个 Raft 模块只是一个底层组件,我们需要在其之上构建应用逻辑,才能对外提供有意义的服务。精读 Zookeeper 论文:我们将学习 Zookeeper 提供了怎样的数据模型和 API,使得复杂的分布式协调任务(如配置管理、领导者选举、分布式锁)变得简单。理解 Zookeeper,就是理解一类“协调服务”的设计范式。学习构建 KV-Raft。

2025-08-08 20:52:23 882

原创 第六期:编程实训(二)—— Lab 2: 实现 Raft 共识算法

欢迎来到本系列第六课,也是 6.824 课程的珠穆朗玛峰。理论读千遍,不如代码敲一行。Lab 2 的目标,就是将我们前两期学习的 Raft 论文中的所有规则、状态和 RPC,转化为一个可以通过所有严苛测试的、活生生的、容错的共识模块。这个过程无疑是充满挑战的,你将与并发、竞态条件、网络延迟等所有分布式系统的不确定性“共舞”。但当你最终通过所有测试时,你获得的将不仅仅是一个项目,而是对分布式共识前所未有的深刻理解。本期核心内容搭建“骨架”:设计 Raft 的核心数据结构。实现“选举权”

2025-08-08 20:50:03 731

原创 第五期:共识之巅(下)—— Raft 论文的实现细节

欢迎来到本系列的第五课!在上一期,我们学习了 Raft 的“快乐路径 (Happy Path)”。但在真实世界中,服务器会崩溃重启,集群的拓扑结构也需要动态调整,而日志如果无限增长,最终会耗尽所有磁盘。一个工业级的共识算法,必须对这些现实问题给出完备的解决方案。持久化 (Persistence):Raft 节点如何在崩溃重启后,恢复其状态并安全地重新加入集群?集群成员变更 (Cluster Membership Changes):如何在不停止服务的情况下,安全地向集群中增加或移除节点?

2025-08-08 20:46:56 810

原创 第四期:共识之巅(上)—— 深入理解 Raft 论文(领导者选举与日志复制)

欢迎来到本系列的第四课!共识是分布式系统领域最核心、也最具挑战性的问题。它的目标是让一个集群中的多个独立节点,能够在面对网络延迟、分区、节点宕机等一系列故障时,对某个“值”达成一致的、不可推翻的决定。长期以来,Paxos 算法是共识问题的代名词,但其以极其难以理解和实现而著称。2014年,斯坦福的 Diego Ongaro 和 John Ousterhout 发表了 Raft 论文,其核心目标就是**“为了可理解性而设计 (Designed for Understandability)”**。

2025-08-08 20:43:53 751

原创 第三期:远程通信与分布式存储 —— RPC 与 GFS 论文精读

欢迎来到本系列的第三课!在我们的 MapReduce 实验中,Master 和 Worker 之间需要不断地通信来请求任务、报告状态。这种跨机器的函数调用,就是通过RPC来实现的。同时,MapReduce 读写的海量数据,存储在一个名为GFS的分布式文件系统中。系统性学习 RPC 的核心原理,并以 Go 的标准库net/rpc为例,理解其工作流程。深度剖析 Google File System (GFS) 论文。

2025-08-08 20:40:57 730

数学建模2024国赛A题

内容概要:本文围绕“板凳龙”这一传统民俗活动的动态模拟与路径优化展开研究。基于等距螺线模型,文章构建了舞龙队的运动方程,通过Matlab仿真模拟,精确计算了舞龙队在不同时间点的位置和速度,并分析了碰撞检测、最小螺距、S形调头曲线优化等问题。研究结果表明,通过优化路径和速度控制,可以显著提升表演效率与观赏性。所有关键数据均被安全归档至多个Excel文件中,确保数据的专业性和可追溯性。 适合人群:对传统民俗文化、机械工程、计算机仿真及路径优化感兴趣的学者、工程师及相关专业学生。 使用场景及目标: ① 研究等距螺线模型在复杂路径规划中的应用; ② 探讨如何通过数学建模和仿真技术优化传统民俗表演; ③ 提供一种有效的路径规划和速度控制方法,以提高表演的安全性和观赏性。 其他说明:本文不仅提供了详细的数学推导和仿真结果,还讨论了模型的优点与局限性,并提出了改进建议。通过增强数据处理能力和引入先进算法,未来的研究可以进一步提升模型的精确度和实用性。此外,附录中提供了完整的Matlab代码,方便读者复现实验结果。

2025-08-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除