- 博客(401)
- 资源 (4)
- 收藏
- 关注
原创 算法工程师基本功-动态给python对象绑定方法
本文介绍了四种在Python中动态给对象绑定方法的技巧:1)直接赋值(非绑定,不推荐);2)使用types.MethodType创建标准OOP方法绑定(推荐);3)通过functools.partial偏函数绑定;4)使用闭包实现。重点对比了MethodType和partial的区别:前者生成真正的method对象且只能绑定self参数,后者生成可调用对象但能绑定任意参数。文章还展示了在ORM模型中动态添加查询方法的应用场景,并建议根据需求选择合适方式:标准OOP绑定用MethodType,需要固定多个参数
2026-07-30 19:12:01
216
原创 数据处理完全指南:从特征工程到流水线实战
本文系统梳理了数据预处理的核心技术与最佳实践,主要包含特征工程和流水线工具两大模块。特征工程涵盖数据清洗(缺失值填充、异常值处理、重复值删除)、特征变换(归一化、对数变换)、类别编码(独热编码、标签编码、有序编码)以及特征构造与降维(PCA、TSVD、t-SNE、UMAP)。流水线工具部分介绍了ColumnTransformer和Pipeline的使用方法。文章强调数据质量对模型性能的决定性作用,并提供可运行的代码示例,帮助读者掌握数据处理的核心流程与实用技巧。
2026-07-14 13:44:59
227
原创 机器学习知识框架:从数据处理到模型部署
本文系统梳理了机器学习工程的核心流程,包括数据处理、模型选择、训练评估等关键环节。重点解析了模型评估体系,涵盖偏差-方差分析、学习曲线及各类评估指标: 回归任务:详细说明MAE、MSE、R²等指标的计算与意义 分类任务:通过混淆矩阵阐述准确率、召回率、F1值等核心指标 聚类任务:介绍轮廓系数等无监督评估方法 过拟合对策:提出早停、Dropout等5种解决方案 文章采用结构化表述,配合数学公式和可视化图表(如ROC曲线),为机器学习实践提供系统性评估框架。数据处理和模型选择的深入内容将后续专题展开。
2026-07-13 13:53:16
220
原创 从随机变量到可测映射
这篇文章从本科与研究生的概率论差异切入,探讨了测度论中集合类的核心概念。作者通过对比幂集、π-系统、σ-代数等集合类的定义与性质,揭示了“可数封闭”这一关键升级点。文中特别强调了对合、同构等抽象代数结构在概率论中的体现,指出德摩根律、矩阵转置等操作本质都是对偶同构的实例。最后通过代数与σ-代数的对比,说明有限运算与可数运算封闭性的根本差异。全文以“思维跃迁”为主线,串联起集合论、测度论与抽象代数的内在联系。
2026-07-11 23:57:20
401
原创 Shell脚本循环详解
本文介绍了Shell脚本中三种主要的循环结构及其用法: for循环:适用于已知循环次数的情况,支持列表遍历、序列生成、文件遍历和C语言风格写法 while循环:基于条件判断执行,常用于文件读取和条件持续为真的场景 until循环:与while相反,条件为假时执行 文章还介绍了循环控制语句break和continue的用法,以及使用循环时需要注意的常见问题,如变量作用域、文件读取方式和无限循环的避免。最后通过对比表格总结了三种循环的特点和适用场景。
2026-07-08 15:30:37
220
原创 最小二乘法:从矩阵推导到代码实现
本文详细推导了线性回归的解析解过程。首先通过增加伪特征简化模型表达,将MSE目标函数转化为矩阵形式($\mathbf{\tilde{X}}^T\mathbf{\tilde{X}} \mathbf{\tilde{w}} = \mathbf{\tilde{X}}^T \mathbf{y}$),然后通过矩阵求导得到正规方程。文章使用Python代码(numpy)和Excel验证了解的正确性,揭示了"加一列1"和正规方程背后的数学原理。整个过程展示了如何将线性代数知识应用于机器学习问题求解,使读者深入理解最小二乘法
2026-07-08 01:40:19
373
原创 算法工程师总学习大纲
AI/ML算法工程师1750小时学习大纲摘要 该学习计划为6-8个月系统培训方案,以项目驱动为核心,总时长1750小时。重点包含: 基础模块(240h):Python编程、数据结构算法、Linux/Docker等工程工具 理论核心(800h): 传统机器学习(Sklearn/XGBoost) 深度学习(PyTorch/CNN/RNN) Transformer与大模型(原理推导+微调部署) 计算机视觉(分类/检测/生成模型) 项目实战(350h):6个典型项目覆盖CV/NLP/LLM/AIGC,强调成果量化
2026-07-08 01:25:31
344
原创 朴素贝叶斯
本文介绍了朴素贝叶斯算法的基本原理和应用。朴素贝叶斯是一种基于概率的分类算法,特别适合处理离散特征数据。文章首先解释了概率与似然的区别,通过抛硬币示例说明似然函数是已知结果反推参数的过程。随后详细推导了贝叶斯公式及其四个核心概念:后验概率、条件似然、先验概率和证据。通过一个天气预测的简单示例,展示了朴素贝叶斯的计算过程。最后介绍了五种朴素贝叶斯变体(高斯、多项式、伯努利、分类和补集)及其适用场景,并提供了使用scikit-learn实现高斯朴素贝叶斯的Python代码示例。
2026-06-28 19:07:59
323
原创 递归函数总结
本文系统讲解了递归的概念、形态与优化方法。递归是函数调用自身的过程,具有两个核心特征:自我调用和终止条件。递归可分为线性递归(头递归/尾递归)和树形递归,不同形态在调用结构和执行流程上存在差异。文章通过时序图和调用树对比了头递归与尾递归的差异,解释了编译器为何只能优化尾递归。针对递归的性能问题,提出了三种优化方向:分而治之、动态规划/记忆化、DFS/BFS转换。重点分析了记忆化(缓存中间结果)和动态规划(自底向上求解)的原理,并以零钱兑换问题为例展示了动态规划的实现方法。文章指出朴素递归时间复杂度通常为指数
2026-06-17 12:11:02
282
原创 Spring生命周期管理
本文通过代码实验和源码解析,详细梳理了Spring Bean生命周期中初始化与销毁阶段的回调执行顺序。初始化阶段顺序为:Aware接口回调 → @PostConstruct → InitializingBean.afterPropertiesSet();销毁阶段顺序为:@PreDestroy → DisposableBean.destroy() → AutoCloseable.close()。文中包含完整的测试代码和Spring源码分析,验证了不同回调的执行时机,为开发者提供了清晰的生命周期执行顺序参考。掌
2026-06-03 04:24:10
280
原创 【LaTex】8.2 chemfig宏包进阶用法
本文介绍了LaTeX中chemfig宏包的高阶用法,包括化学反应式、路易斯结构和立体构型的绘制方法。主要内容:1)使用\schemestart和\schemestop命令绘制化学反应式,\arrow命令控制箭头样式;2)通过\charge命令绘制路易斯结构,显示原子周围的电子;3)利用特殊符号(>、<、>:、<:)表示立体构型中的键方向,并强调双键/三键必须画在平面内。这些方法能帮助用户准确绘制复杂的化学结构图,满足大学化学课程的需求。
2026-05-28 17:30:11
86
原创 海克斯大乱斗:煅体概率模型与经济价值终极研究
本文通过实测数据分析了海克斯大乱斗中符文碎片的概率机制与经济价值。基础概率为银50%、金45%、彩5%,不同符文组合会按特定比例调整概率,如"属性叠属性"类符文会从白银概率中扣除5%并按9:1分配给金/彩。"掷骰狂人4"可将白银概率归零,使金/彩概率提升至90%/10%。经济分析显示,在理想符文组合下,煅体比购买装备更具性价比,但核心机制装备仍不可替代。文章最后给出了各职业必买的核心装备建议,为游戏策略提供参考。
2026-05-26 19:38:17
657
原创 海克斯大乱斗:用Python和微积分证明,霞到底该带“灵巧”还是“点亮他们”?
摘要: 本文通过数学模型分析符文“灵巧”与“点亮他们”对英雄霞的收益差异。建立DPS函数比较发现,在额外攻击力<176时,“点亮他们”全面占优;仅当攻击力极高且攻速极低时,“灵巧”才有优势。三维可视化与二维平衡曲线显示,“点亮他们”的伤害乘区优势使其成为霞的优选,颠覆了“灵巧适合攻速流”的直觉认知。最终结论:除非极端出装,否则“点亮他们”是版本答案。
2026-05-26 15:34:38
645
原创 海克斯大乱斗:闪电打击不太行啊!数学告诉你为什么
本文分析了《英雄联盟》海克斯大乱斗中吸血习性与闪电打击的选择问题。通过建立数学模型,分别计算了两种情况下(攻击频率低于1.75和高于1.75)的总输出收益比。结果显示:在攻击频率低于1.75时,吸血习性的收益主要取决于输出承伤比(DPS/每秒承伤),而与攻速关系不大;在攻击频率高于1.75时,虽然闪电打击会触发额外攻击特效,但在后期攻击力较高时影响有限。综合来看,吸血习性在大多数情况下更具优势,特别是当输出承伤比较高时,25%的吸血效果能显著提升生存能力。
2026-05-25 21:50:19
353
原创 海克斯大乱斗:缩小射线值得拿吗?用生存模型分析最优选择
摘要:通过数学模型分析海克斯大乱斗中缩小射线与吸血习性的选择策略。建立英雄生存时间公式,计算得出临界值k=0.6(输出承伤比):当k>0.6时吸血习性更优(适合ADC/刺客等高输出英雄),k<0.6时缩小射线更优(适合坦克类英雄)。以卡莎实战数据验证(k≈1.88)证实该结论,为不同定位英雄提供明确选择依据。
2026-05-25 17:39:07
430
原创 海克斯大乱斗:射手血拼你怕了吗?
本文通过数学模型对比了五位射手英雄(希维尔、崔丝塔娜、厄运小姐、艾希、霞)的爆发DPS表现。基于100%暴击假设,计算得出:前期(额外攻速S<1.02)崔丝塔娜最强,后期(S>1.02)艾希最优。希维尔在1v1理想情况下伤害最高,但实战中弹射被分摊时表现最差。厄运小姐的W技能在纯平A模型中垫底,但其R技能在实战中具有T0级爆发。崔丝塔娜凭借后期703码射程可实现无伤输出。最终结论指出:崔丝塔娜适合前期压制,艾希适合后期输出,厄运小姐依赖大招爆发,希维尔则是团战AOE之王。
2026-05-25 05:41:57
453
原创 海克斯大乱斗:全能吸血的价值,用数学算笔账
海克斯大乱斗"死不了"流派的核心在于全能吸血机制。通过数学建模得出:要实现团战不死,吸血比例r需大于输出承伤比k的倒数(r>1/k)。在装备选择上,当k>10/9时,渴血战斧的生存收益优于直接加攻击的符文;反之则选择攻击符文更优。但需注意该理论存在实战局限性,仍需配合足够坦度避免被秒杀。研究为玩家提供了吸血流派的量化决策依据,平衡了续航与爆发的取舍。
2026-05-25 04:25:23
738
原创 海克斯大乱斗:暴击飞弹还是暴击律动?硬核分析
摘要 本文通过数学建模对比了《英雄联盟》中崔丝塔娜的"暴击飞弹"与"暴击律动"两种输出方式的伤害差异。研究建立了不同暴击率场景下的DPS计算公式,通过求解临界攻速点来判断最优选择。分析表明:在0暴击、25%暴击、50%暴击和100%暴击四种情况下,暴击飞弹始终优于暴击律动。实例计算以18级崔丝塔娜为例,验证了理论模型的正确性,并通过Python可视化展示了伤害比值随攻速和额外攻击力的变化规律。研究为玩家装备选择提供了量化依据,建议优先选择暴击飞弹输出方式。
2026-05-24 18:28:45
1151
原创 海克斯大乱斗:收集者vs大力到底选谁?一场严谨的数学博弈
摘要: 《英雄联盟》“海克斯大乱斗”中,“升级:收集者”与“大力”的选择需结合数学模型与实战分析。纯理论模型显示,“大力”20%攻击力加成的伤害效率比“收集者”12.5%斩杀线高5%。实战中,“大力”的增益全程生效且无触发条件,而“收集者”的斩杀效果仅在低血量时有用,且易受伤害溢出影响。经济方面,“收集者”的金币奖励依赖击杀,稳定性不足;“大力”则通过即时战力提升更易滚雪球。尽管数据显示“收集者”胜率更高(因金币雨羁绊),但数学上“大力”综合表现更优,是普适性更强的选择。
2026-05-24 15:51:23
831
1
原创 海克斯大乱斗:魔法转物理还是点亮他们?
文章摘要:通过数学建模比较了《海克斯大乱斗》中"魔法转物理"和"点亮他们"两个选择的伤害效果。建立伤害公式$D_a=1.15(x+y+0.6AP)$和$D_b=x+y+80+0.35y+0.19AP$,推导出临界条件$y=0.75x-400+2AP$。分析表明:当额外攻击力$y$超过临界值时选"点亮他们"更优,否则选"魔法转物理"。特别指出,对于普攻类英雄应优先选择"点亮他们"。
2026-05-23 20:20:37
501
原创 海克斯大乱斗:双生火焰还是物理转魔法?
本文通过数学建模分析了游戏中选择"双生火焰"和"物理转魔法"两种装备的效果差异。以安妮和莫甘娜的技能为例,建立了伤害计算公式,计算了不同AP系数下的平衡点。结果显示:煅体前,物理转魔法在AP较高时更具优势;但随着煅体层数提升,双生火焰配合暴击碎片的优势逐渐显现。最终结论指出,物理转魔法配合力量碎片在大多数实战场景(AP<800)下表现更优。该分析为装备选择提供了量化依据。
2026-05-23 18:28:10
840
原创 海克斯大乱斗:是选择双抗还是生命?
本文通过数学建模分析英雄联盟中海克斯大乱斗煅体的选择策略。基于有效生命值(EHP)公式EHP=y×(1+x/100),推导出生命值(y)与双抗(x)的经济平衡点y=1100+11x。通过一个7410血、284护甲的案例计算显示:在当前属性下,购买10点护甲使EHP提升741点,远高于购买110生命值带来的422点提升。结论表明当实际生命值(7410)远超平衡点(4224)时,护甲收益更高,建议优先选择抗性碎片以最大化有效生命值。
2026-05-22 19:59:32
504
原创 海克斯大乱斗:普攻英雄“锻体”收益的严谨数学分析
本文通过数学建模分析了游戏煅体过程中攻击力(AD)与攻速(S)的选择策略。研究发现:当AD>100+100S时,购买攻速收益更高;反之则应选择攻击力。该公式巧妙利用"1点AD=1%攻速"的经济模型,使玩家只需将额外攻速乘以100再加100,即可快速判断最优选择。实际案例验证了公式的准确性,并指出随着煅体层数提升,应采用"补偿方案"平衡属性收益。这种基于木桶效应的优化方法,为玩家提供了简单有效的决策依据。
2026-05-22 02:07:32
870
原创 海克斯大乱斗:一板一眼降低了普攻输出吗?用严谨的数学算笔账!
《英雄联盟》海克斯符文“一板一眼”通过数学模型分析表明:该符文将攻速锁定为0.625,并将额外攻速转化为攻击力(25点基础+每1%额外攻速转化为1点攻击力)。数学推导显示,当英雄额外攻速超过80%时,攻击力收益可弥补攻速损失,尤其在攻击力低于100时收益显著。特定英雄如泽丽、杰斯和盖伦能利用技能机制实现攻速与攻击力双收益,使该符文成为高效输出选择。因此,“一板一眼”在中后期或特定英雄搭配下并非负面效果,而是提升输出的有效手段。
2026-05-18 19:41:28
595
原创 【LaTex】3.9 K线图
本文介绍了使用LaTeX的pgfplots.statistics库绘制K线图的方法。主要配置参数包括:lower whisker(最低价)、lower quartile(收盘价/开盘价)、upper quartile(开盘价/收盘价)和upper whisker(最高价)。文章提供了详细的代码示例,展示了如何通过boxplot prepared命令绘制K线图,并解释了如何去除K线多余的"尾巴"(通过设置whisker extend参数)。此外,作者尝试了使用表格数据加载的方法,但发现目前
2026-03-03 22:22:04
133
原创 antlr入门指南
本文介绍了使用ANTLR工具实现JSON解析器的完整流程:1)下载ANTLR Java生成器;2)定义JSON语法规则文件(json.g4),包含词法和解析器规则;3)生成Java解析代码并集成到项目中;4)添加Maven依赖antlr4-runtime;5)编写测试代码实现从字符流到解析树的全过程。通过流程图展示了从环境准备到测试验证的完整开发步骤,最终输出JSON解析结果。整个过程涵盖了语法定义、代码生成、项目集成和测试运行等关键环节。
2026-03-02 22:05:14
958
原创 合并区间问题
摘要:本文介绍了合并重叠区间的算法,采用栈结构实现。首先将区间按起始值排序,然后依次与栈顶元素比较:若重叠则合并,否则直接入栈。通过数学证明该方法不会出现多元素重叠情况。Java实现展示了具体代码,测试结果验证了算法正确性,成功合并输入区间为[[1,6],[8,10],[15,18]]和[[1,18]]。
2026-02-19 00:14:27
482
原创 电话号码字母组合问题
本文介绍了电话号码字母组合问题的两种解法:进位法和回溯法。进位法通过数学计算直接生成所有组合,时间复杂度为O(n^2)。回溯法则利用DFS遍历树形结构,记录路径生成组合。两种方法都能正确解决问题,其中进位法效率更高但代码较复杂,回溯法更直观但性能略低。文中提供了Java实现代码和测试用例,展示了如何将数字字符串转换为对应的字母组合。
2026-02-05 22:14:03
389
原创 6.5 置换的乘法
本文介绍了置换的化简方法和轮换的乘方计算。置换可分为三类:恒等置换、轮换和轮换组合。化简置换的关键是跟踪每个位置的变化轨迹,通过矩阵连线法可快速计算。轮换乘方的计算步骤包括建立索引表、模加法运算和生成新置换表达式,并总结出轮换幂运算的三个规律。此外,文中还阐述了多个位置与同一位置置换形成轮换的重要规律,这些方法为置换运算提供了系统化的计算工具。
2026-02-03 21:23:56
134
原创 redis内存管理源码分析
Redis内存管理机制分析:本文梳理了Redis源码中内存碎片整理(defrag.c)、内存淘汰(evict.c)和过期键删除(expire.c)的核心实现。内存碎片整理通过ae事件循环异步执行,采用内存复制方式处理;内存淘汰策略包含8种算法,基于对象头的LRU/LFU属性实现;过期键删除通过serverCron定时任务和事件循环触发,主从模式下处理方式不同。所有功能模块通过server.h统一声明,分散在不同C文件中实现,这种架构设计提高了模块化程度但也增加了代码分析难度。
2026-02-03 16:18:59
1044
原创 Redis 服务器线程与事件循环解析
Redis采用多线程模型,主线程(Thread-1)负责事件循环处理,另有5个后台线程处理I/O和内存管理等任务。事件循环核心位于ae.c文件,通过epoll_wait实现高效休眠机制,在没有事件时线程会阻塞而不消耗CPU。Redis还设置了beforeSleep和afterSleep钩子函数,在休眠前后执行必要逻辑。文章最后通过一个监听键盘输入的epoll示例程序,演示了Redis事件处理模型的核心机制。这种事件驱动架构是Redis高性能的关键所在。
2026-01-30 16:15:00
613
原创 redis数据类型
Redis 数据结构实现策略总结: List 类型在不同版本采用不同实现:小数据量时从 ziplist 过渡到 listpack,大数据量时从 adlist 转为 quicklist Hash 和 Set 类型对小数据使用压缩结构(listpack/intset),大数据转为 dict ZSet 使用跳表实现,与 listpack 互相转换 特殊结构: Geo 基于 ZSet 实现 HyperLogLog 通过概率统计实现基数计算 rax 压缩前缀树用于管理键空间 版本演进趋势:逐步淘汰 ziplist,采
2026-01-29 20:27:51
842
原创 redis源码deps目录
Redis的deps目录存放了精心挑选的第三方库,体现了对性能极致的追求。fast-float实现比系统快2-4倍的文本转浮点数;fpconv采用Grisu算法实现5-10倍速的浮点数转字符串;hdr_histogram提供纳秒级延迟监控;jemalloc优化高并发内存分配;linenoise仅1534行代码实现完整命令行功能;Lua以200KB体积实现完整编程语言。这些库共同特点是零内存分配、缓存友好、算法高效,通过技术选型将性能优化到极致。
2026-01-28 19:55:29
743
原创 Redis 源码分类
本文对Redis 8.0版本的110个C语言源码文件进行了系统分类,共划分为16个功能类别。主要包括:数据结构实现(如双向链表、哈希表等)、彩蛋功能、数据类型命令、事件循环、内存管理、持久化、CRC校验算法、命令行工具、网络IO、算法实现、Lua脚本支持、分布式功能、调试工具、字符串处理、监控系统以及服务器核心模块。这种分类方法有助于开发者更高效地研究和理解Redis源码结构,为后续深入分析各功能模块提供了清晰的框架。文章还展示了部分彩蛋功能的实现效果图,体现了Redis源码的趣味性。
2026-01-27 15:11:14
719
原创 redisson可重入锁
本文介绍了Redisson分布式锁的实现原理与使用方法。首先通过WSL启动Redis服务,然后使用Maven搭建Java测试程序,演示了通过RedissonClient获取锁的代码实现。重点分析了Redisson的加锁原理,通过Lua脚本实现基于Redis哈希结构的锁重入计数和过期时间设置。详细讲解了等待机制中信号量和消息订阅的实现方式,以及锁释放时的异步/同步处理流程,包括修改Redis哈希值和发布释放消息两个关键步骤。
2026-01-05 16:42:36
405
原创 5.3 斐波那契数列的矩阵算法
摘要:本文介绍了计算斐波那契数列的矩阵算法原理及其优化方法。通过将斐波那契递推公式转化为矩阵乘法,提出两种优化方案:约当标准型法(实际效果不佳)和二进制快速幂法(复杂度O(log n))。重点分析了二进制快速幂的实现原理,并提供了Python代码示例,展示了如何利用矩阵快速幂高效计算斐波那契数列。测试结果验证了算法的正确性。
2025-12-31 20:49:38
176
原创 Spring Cloud Gateway
本文介绍了Spring Cloud Gateway作为Zuul替代方案的技术演进。文章首先指出Zuul已被Spring放弃,由核心开发者Spencer Gibb带领团队转向Gateway开发。随后详细说明了Gateway的基本配置方式,包括Maven依赖、启动类编写和路由配置。重点分析了Gateway的两大核心特性:谓词系统(Path、Query等8种路由规则)和过滤器机制(请求处理、响应处理等11种过滤器)。最后通过源码分析揭示了Gateway基于WebFlux的转发实现原理,核心转发逻辑位于NettyR
2025-12-30 22:55:00
849
原创 1.2 多维数组(markdown版本)
本文介绍了使用动态规划求解最长公共子序列(LCS)问题的方法。通过分析两种场景:字符串尾部字符相同和不同时的情况,推导出递推公式,并采用二维数组存储中间结果。文章提供了Python和Java的代码实现,展示了如何通过填充二维数组来计算两个字符串的最长公共子序列长度。该方法的时间复杂度为O(mn),其中m和n分别为两个字符串的长度。
2025-12-30 18:09:47
1065
原创 10.3 多项式Toeplitz矩阵算法
本文介绍了多项式乘法的矩阵表示方法。多项式可视为向量空间中的向量,其系数对应各次幂的坐标。通过构造Toeplitz矩阵,将多项式乘法转换为矩阵乘法运算。具体演示了(2x²+4x+7)与(2x+3)相乘的过程,并给出Python实现代码,通过构建特定矩阵结构实现多项式乘法运算,最终输出正确结果[21,26,14,4]。该方法为多项式运算提供了矩阵化思路。
2025-12-27 00:30:14
182
Gnuplot 5.5 Windows版
2022-06-07
麻省理工学院研究生数论I课程笔记(英文版)
2022-04-28
麻省理工学院本科数论课程笔记(英文版)
2022-04-28
任意内积下怎么Householder分解?
2023-02-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅