自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2021年第十二届蓝桥杯(C/C++ 大学B组)

卡片(5分)空间(5分)直线(10分)货物摆放(10分)路径(15分)时间显示(15分)砝码称重(20分)杨辉三角形(20分)双向排序(25分)括号序列(25分)

2022-04-04 14:28:46 1941 3

原创 MIT-数字棋盘和数字三角形

本文探讨了数字棋盘和数字三角形两种模型的最短路径问题。数字棋盘问题要求从n×n棋盘的顶行到底行的路径成本最小,允许左、右对角线或垂直移动,提出了暴力搜索(O(n·3^n))和动态规划(O(n^2))两种解法。数字三角形问题则需要在n行三角形中寻找从顶点到底边的最大和路径,同样给出暴力搜索(O(2^n))和动态规划(O(n^2))的解决方案。两种动态规划方法都通过状态转移方程显著降低了时间复杂度,展示了动态规划在路径优化问题中的高效性。

2025-11-07 22:32:55 1299

原创 MIT-矩阵链相乘

矩阵链乘法问题研究如何以最优顺序计算矩阵乘积以最小化乘法次数。不同计算顺序会导致显著效率差异,例如三个矩阵相乘的不同加括号方式可能带来10倍的性能差距。该问题的解空间呈卡特兰数增长(O(4^n/n^1.5)),暴力枚举不可行。动态规划解法通过构建二维DP表,定义dp[i][j]为计算A_i到A_j的最小乘法次数,采用三重循环(长度-起点-分割点)递推求解,时间复杂度O(n^3)。核心转移方程为dp[i][j] = min(dp[i][k] + dp[k+1][j] + p[i-1]*p[k]*p[j]),有

2025-11-06 22:48:59 952

原创 MIT-最长公共子序列问题(LCS)

本文介绍了求解两个字符串最长公共子序列(LCS)的方法。LCS是指在不改变字符顺序的前提下,两个字符串共有的最长子序列。暴力算法通过枚举所有可能的子序列(2^n个)并与另一字符串匹配,时间复杂度高达O(m2^n)。更高效的动态规划算法则构建一个二维DP表,其中dp[i][j]表示A前i个字符和B前j个字符的LCS长度。通过状态转移方程处理字符匹配与不匹配的情况,最终在O(nm)时间内解决问题。实例分析表明动态规划显著优于暴力解法。

2025-11-05 22:57:37 1023

原创 MIT-0-1背包问题

本文介绍了0-1背包问题的动态规划解法。该问题要求在N件物品中选择若干件装入容量为V的背包,使总价值最大且总体积不超过背包容量。算法使用二维数组dp[i][j],表示前i件物品在容量j下的最大价值。初始化边界条件后,通过比较选与不选当前物品的情况进行状态转移:若容量不足则直接继承前状态;若容量足够则选择较大值。最终返回dp[n][m]即为最优解,时间复杂为O(nm)。

2025-11-05 16:48:04 994

原创 MIT-寻找第k小的元素

本文介绍了两种寻找数组中第k小元素的算法:暴力排序法和分治法。暴力法通过快速排序后直接取第k个元素,时间复杂度为O(nlogn)。分治法基于快速排序的partition思想,每次将搜索范围减半,时间复杂度为O(n)。文章详细描述了两种算法的实现过程,并通过数学推导证明了分治法的时间复杂度。

2025-11-04 20:53:28 805

原创 MIT-归并排序和快速排序

本文介绍了三种常见排序算法:冒泡排序、归并排序和快速排序。冒泡排序通过相邻元素比较交换实现排序,时间复杂度O(n²)。归并排序采用分治策略,将数组递归分解并合并有序子序列,时间复杂度O(nlogn)。快速排序同样基于分治思想,通过选取中轴元素划分数组并进行递归排序,时间复杂度O(nlogn)。文中提供了算法实现代码,并通过数学推导分析了各算法的时间复杂度。快速排序和归并排序因更优的时间复杂度而适用于大规模数据排序场景。

2025-11-04 19:50:18 985

原创 MIT-二分搜索

本文介绍了在升序数组中查找目标值的两种方法:暴力搜索和二分查找。暴力搜索逐个遍历数组,时间复杂度为O(n);二分查找通过分治策略将每次查找范围减半,时间复杂度降至O(log₂n)。文中详细推导了二分查找的时间复杂度,并通过代码示例展示了具体实现。当数组规模为n=2^h时,证明二分查找的比较次数为log₂n+O(1),显著优于线性搜索。

2025-11-04 16:28:37 571

原创 MIT-大整数相乘和大矩阵相乘

给定两个非负整数 AAA 和 BBB ,它们的位数可以非常大(可能有数千甚至数百万位)。要求计算它们的积:C=A⋅BC = A\cdot BC=A⋅B由于整数过大,无法直接使用内置整型存储,因此我们通常将每个大整数表示为:A=(an−1an−2…a1a0),B=(bm−1bm−2…b1b0)A=(a_{n-1}a_{n-2}\ldots a_1a_0),\quad B=(b_{m-1}b_{m-2}\ldots b_1b_0)A=(an−1​an−2​…a1​a0​),B=(bm−1​bm−2​…b1​b

2025-11-02 22:59:49 433

原创 MIT-两个多项式相乘

本文探讨了三种多项式乘法算法:暴力算法、分治算法和优化的Karatsuba分治算法。暴力算法直接计算各项乘积,时间复杂度为O(n²)。基础分治算法将多项式分为四部分递归处理,但时间复杂度仍为O(n²)。Karatsuba算法通过数学技巧将子问题数量从4个减少到3个,提升了分治效率。文章详细推导了分治算法的时间复杂度,并给出了各算法的C++实现代码,包括多项式加减辅助函数。三种算法在多项式乘法问题中展现了从简单到优化的递进关系。

2025-11-02 20:49:34 718

原创 MIT-最大连续子序列和(MCS)

本文探讨了如何在一个连续利润序列中找到和最大的连续子序列问题。通过四种不同算法进行分析比较:1)暴力法($O(n^3)$)遍历所有子序列;2)优化暴力法($O(n^2)$)通过重用计算结果;3)分治法($O(n\log n)$)将问题分解并合并求解;4)动态规划($O(n)$)利用状态转移高效求解。以示例序列[-3,2,1,-4,5,2,-1,3,-1]验证,最优解为子序列[5,2,-1,3],总和9百万美元。结果表明动态规划算法在时间效率上最优。

2025-10-30 23:02:17 1041

原创 扩散模型DDPM数学推导过程完整版(下)

本文推导了扩散模型的变分下界损失函数(LVLB)。通过最大化真实数据点x0的概率pθ(x0),将其转化为最小化负对数形式。引入KL散度衡量前向扩散与反向去噪过程的差异,通过数学变换将目标表达为三个部分:终端状态KL散度、各时间步KL散度和初始状态对数概率。这一推导为扩散模型提供了可计算的优化目标,使模型能够有效学习反向去噪过程。

2025-10-08 23:01:06 805

原创 扩散模型DDPM数学推导过程完整版(上)

DDPM模型通过加噪和去噪两个阶段实现图像生成。加噪阶段将原始图像逐步添加噪声至完全无序状态,类似拆除建筑;去噪阶段则通过学习逆向过程从噪声中重建图像。模型采用马尔可夫链描述加噪过程,利用高斯分布的重参数化实现高效计算。去噪阶段通过贝叶斯理论近似后验分布,推导出均值和方差的解析表达式,最终实现从噪声到清晰图像的逐步恢复。整个模型体现了从有序到无序再到有序的逆向学习机制。

2025-10-07 19:07:55 427

原创 线性表(从数据结构的三要素出发)

该博客详解了线性表的逻辑和物理结构,讨论了顺序存储和链式存储的优缺点。包括单链表、双链表、循环链表和静态链表的定义、操作和代码实现。描述了线性表的插入、删除、查找等基本操作,并提供了相关代码示例,适合初学者学习线性表数据结构。

2024-05-25 20:15:18 1078

原创 图论(从数据结构的三要素出发)

该博客涵盖了图的逻辑结构、物理结构,以及常见表示方法如邻接矩阵、邻接表等。重点介绍了广度优先遍历、深度优先遍历,以及最小生成树和最短路径算法。对于图的遍历、生成树和关键路径的计算都有详细解释,适合初学者了解图算法。

2024-05-25 16:47:50 1422

原创 数组和特殊矩阵的压缩存储

本篇博客介绍了在计算机科学中常见的数组和矩阵存储结构以及对稀疏矩阵的优化方法。首先,讨论了一维数组的存储结构关系式,包括以0或1为起始索引的情况。然后,探讨了二维数组按行优先和按列优先的存储结构,并介绍了特殊矩阵(对称矩阵、三角矩阵、三对角矩阵)的存储优化方法。最后,详细介绍了稀疏矩阵的两种压缩存储方法:三元组法和十字链表法。

2024-05-22 13:09:25 1210

原创 队列(从数据结构的三要素出发)

本文介绍了队列的定义、物理结构及其多种实现方式,包括顺序队列、循环队列、链式队列和双端队列,详细阐述了各类队列的基本操作和具体实现,并展示了队列在层次遍历和操作系统中的应用。通过图文并茂的讲解,深入解析了队列的逻辑结构和实际应用场景。

2024-05-21 17:34:20 1185

原创 栈(从数据结构的三要素出发)

本文介绍了栈的基本概念及其物理和逻辑结构,包括顺序栈、链栈和共享栈的定义与操作。提供了详细的代码示例,如初始化、判断栈空和栈满、入栈、出栈及读取栈顶元素等操作。还探讨了栈在括号匹配、表达式求值和递归调用中的应用。

2024-05-21 12:49:16 865

原创 树与二叉树(从数据结构的三要素出发)

这篇博客详细介绍了树、森林、并查集和哈夫曼编码等数据结构和算法的概念。它包括了逻辑结构、物理结构以及数据操作等方面的讲解,并配以清晰的示意图。通过分析树结构的转换和哈夫曼编码的构建过程,深入探讨了相关算法的实现细节。这份文档提供了对这些概念的深入理解,对于学习和理解数据结构和算法有很大帮助。

2024-05-19 00:17:26 837

原创 实例驱动计算机网络

这个指挥交通的例子中,你通过动态调整指挥手势的数量(窗口大小),根据路口的通行能力(通告窗口大小)来协调车辆的流动,以确保交通顺畅而不会因为车辆过多而堵塞。我们用一个例子来解释路由控制,假设你的计算机网络就像一座城市,每个计算机就像城市中的一个建筑物,而路由器就像城市中的交叉路口和导航系统。其中NAT充当了度假屋和外部网络之间的桥梁,实现了私有IP地址到公有IP地址的转换,让私有网络中的多个设备能够通过共享一个公有IP地址访问互联网。UDP和TCP是两种互补的协议,根据应用的需求选择合适的协议是很重要的。

2024-03-02 18:08:34 1137

原创 西瓜书学习笔记——流形学习(公式推导+举例应用)

本博客详细介绍了等度量映射(Isomap)和局部线性嵌入(LLE)两种流形学习方法。Isomap通过保持测地距离近似保持数据流形的局部结构,而LLE旨在保留邻近关系,通过线性组合对数据点进行重构。实验部分使用Python代码演示了Isomap和LLE在降维可视化上的应用,为理解流形学习提供了清晰的示例。

2024-02-04 21:01:11 2033

原创 西瓜书学习笔记——核化线性降维(公式推导+举例应用)

核化线性降维是一种基于核方法的降维技术,适用于处理非线性数据结构。以核主成分分析(KPCA)为例,通过引入核函数,将数据映射到高维特征空间,并利用核矩阵的特征值分解实现降维。本文利用径向基函数核对数据集进行核化PCA,展示了降维后的可视化效果。

2024-02-03 22:16:23 1648

原创 西瓜书学习笔记——主成分分析(公式推导+举例应用)

本篇博客介绍了主成分分析(PCA)算法,以及其在降维问题中的应用。PCA旨在通过线性变换找到最能代表原始数据的主成分,同时保留数据的重要信息。通过特征值分解,我们推导了PCA的优化目标,并使用重构阈值确定最小降维维度。最后,通过实验分析展示了PCA在一个相关数据集上的降维效果。

2024-02-03 14:01:40 2720

原创 西瓜书学习笔记——低维嵌入(公式推导+举例应用)

低维嵌入(Low-Dimensional Embedding)技术通过降低高维数据的复杂性,实现数据在更低维度空间的映射,用于可视化和数据压缩。本文介绍了低维嵌入在K近邻学习中的应用,通过保持样本间距离关系,提高KNN算法性能。算法利用特征值分解和对角矩阵构建,通过实验验证了该方法在数据集降维过程中的有效性。 MDS算法结果展示了特征值构成的对角矩阵,为数据降维提供了直观的视觉呈现。

2024-02-02 20:47:43 2305

原创 西瓜书学习笔记——k近邻学习(公式推导+举例应用)

K最近邻(KNN)算法是一种基于简单思想的监督学习方法,可用于分类和回归。本实验以密度和糖含量为特征,展示KNN在二分类问题中的应用。通过欧氏距离计算样本相似性,KNN选择最近邻居进行预测。实验结果以散点图和决策边界呈现,验证KNN的分类效果。

2024-02-02 20:47:03 1341

原创 西瓜书学习笔记——层次聚类(公式推导+举例应用)

本博客基于AGNES算法进行层次聚类,采用豪斯多夫距离度量集合间距离,成功将数据集划分为层次化的聚类结构。通过可视化展示,清晰呈现了聚类结果。

2024-01-29 23:54:27 1670

原创 西瓜书学习笔记——密度聚类(公式推导+举例应用)

本博客基于密度聚类算法(DBSCAN),通过定义邻域、核心对象和密度聚类等概念,实现了无监督聚类。通过对密度聚类算法的超参数调优,成功将数据集分为不同簇,可视化展示聚类结果。

2024-01-29 23:53:50 1845

原创 西瓜书学习笔记——原型聚类(公式推导+举例应用)

本文章介绍了k均值、LVQ和高斯混合聚类。k均值简单高效,LVQ保留拓扑结构,高斯混合适应复杂分布。实验展示了它们在数据集上的应用及优缺点。

2024-01-27 20:37:49 1375

原创 西瓜书学习笔记——Boosting(公式推导+举例应用)

Boosting是一种集成学习方法,AdaBoost通过迭代训练弱学习器,调整样本权重和学习率,优化指数损失函数,取得了广泛成功。实验结果表明,在预测人才录取问题上,AdaBoost相较于单一决策树具有更高准确度和泛化性能。

2024-01-23 19:08:27 1561 1

原创 贝叶斯分类器(公式推导+举例应用)

本文深入探讨了贝叶斯分类器的理论基础和实际应用。首先介绍了贝叶斯决策论,以及先验概率和后验概率的概念。通过极大似然估计,我们理解了在统计模型中如何估计参数。然后详细讲解了朴素贝叶斯分类器,阐述了其基于概率和属性条件独立性假设的工作原理。通过实验分析垃圾邮件分类,展示了朴素贝叶斯分类器在实际问题中的表现,以及对模型评估和分析的方法。总体而言,贝叶斯分类器在文本分类等领域有着广泛应用,通过本文的学习,读者能更好地理解和应用这一强大的机器学习算法。

2024-01-13 20:35:04 3840

原创 支持向量机(公式推导+举例应用)

本文深入介绍支持向量机(SVM)原理、核函数和正则化,通过实验比较SVM与线性判别分析(LDA)在非线性可分数据集上的表现。LDA准确度为45%,决策边界欠佳,而SVM准确度达100%,通过核函数在高维空间找到有效决策边界,优于LDA。SVM在处理非线性关系上表现更出色。

2024-01-13 14:31:04 2022

原创 决策树(公式推导+举例应用)

该博客总结了决策树在决策制定中的广泛应用。决策树通过树形结构模拟决策过程,在商业、医疗等领域取得显著成果。文章深入探讨了决策树的学习思路、划分选择、剪枝处理等关键概念。实验展示了构建决策树模型的步骤,通过网格搜索选择最优超参数,并对性能进行了详细分析,强调模型在类别"Yes"上的改进空间。

2024-01-11 14:28:14 3201

原创 线性判别分析LDA((公式推导+举例应用))

LDA不同于一些无监督降维方法,如主成分分析(PCA),它充分利用了类别信息,通过寻找最佳投影方向,使得不同类别的样本在降维后的空间中有最大的类间距离,同时保持同一类别内的样本尽量接近。LDA的核心思想是在降维的同时最大化类别之间的差异,通过寻找最佳投影方向,使得不同类别的样本在降维后的空间中有最大的类间距离,同时保持同一类别内的样本尽量接近。在这个过程中,LDA通过解决广义特征值问题,找到了最优的投影方向,从而能够将原始高维数据映射到一个维度更低的空间中,同时保留了最重要的类别间信息。

2024-01-09 22:58:54 5524

原创 多元线性回归模型(公式推导+举例应用)

本文深入研究了多元线性回归及其在非满秩矩阵情况下的解决方案。通过介绍模型表达式、最小二乘法,以及广义线性模型,我们全面理解了多元线性回归。在$\mathbf{X^TX}$不是满秩的情况下,讨论了正则化方法如岭回归和套索回归,以有效处理多重共线性问题。此外,文中探讨了对数几率回归作为处理非满秩矩阵的二分类问题的解决方案。详细解释了对数几率回归的模型表达式,并探讨了通过极大似然估计法求解模型参数的方法。整体而言,本文提供了深入学习多元线性回归的基础,为实际数据分析和预测提供了有力支持。

2024-01-09 13:48:26 74160

原创 一元线性回归模型(公式推导+举例应用)

本文深入探讨了一元线性回归的原理及应用。通过最小二乘法和协方差方差的推导,得到了求解斜率和截距的两种方法。利用工人工作年限与薪水的数据集进行实验分析,采用最小二乘法和协方差方差法得到的拟合直线均能有效描述变量间的线性关系。这些方法不仅为建模提供了有力工具,也帮助理解回归分析的基本原理。在实际应用中,可根据具体情况选择适宜的方法进行建模和分析。

2024-01-07 19:00:19 18735 1

原创 2022年蓝桥杯C++B组(超详解)

2022年蓝桥杯C++B组题解

2023-04-01 20:47:52 1047

原创 KMP算法笔记

KMP算法匹配与求next数组的过程

2022-10-31 21:47:22 198

原创 Codeforces Round #799 (Div. 4) 赛后总结

Codeforces Round #799 (Div. 4) 赛后总结

2022-06-16 17:48:55 500

原创 Codeforces Round #797 (Div. 3) 赛后总结

Codeforces Round #797 (Div. 3) 赛后总结

2022-06-08 17:27:49 614

原创 蓝桥杯2021年第十二届国赛真题-二进制问题

小蓝最近在学习二进制。他想知道 111 到 NNN 中有多少个数满足其二进制表示中恰好有 KKK 个 111。你能帮助他吗?输入一行包含两个整数 NNN 和 KKK。输出一个整数表示答案。输出样例数据范围对于 30%30\%30% 的评测用例,1≤N≤1061 ≤ N ≤ 10^61≤N≤106, 1≤K≤101 ≤ K ≤ 101≤K≤10。对于 60%60\%60% 的评测用例,1≤N≤2×1091 ≤ N ≤ 2 × 10^91≤N≤2×109, 1≤K≤301 ≤ K ≤ 301≤K≤30

2022-06-01 18:43:34 2759 1

西瓜书学习笔记-原型聚类(公式推导+举例应用)

西瓜书学习笔记-原型聚类(公式推导+举例应用)

2024-01-27

西瓜书学习笔记-Boosting(公式推导+举例应用)

西瓜书学习笔记-Boosting(公式推导+举例应用)

2024-01-23

贝叶斯分类器(公式推导+举例应用)

贝叶斯分类器(公式推导+举例应用)

2024-01-13

支持向量机(公式推导+举例应用)

支持向量机(公式推导+举例应用)

2024-01-13

BP神经网络(公式推导+举例应用)

BP神经网络(公式推导+举例应用)

2024-01-11

决策树(公式推导+举例应用)

决策树(公式推导+举例应用)

2024-01-11

线性判别分析LDA((公式推导+举例应用))

2024-01-09

学生学习市场对应成绩(过于不过)的数据集

$\mathbf{X^TX}$不满秩且是二分类问题的情况

2024-01-09

房屋面积、房间数、卧室数量、浴室数量、车库空间、建造年份对应价格的数据集

$\mathbf{X^TX}$不满秩且是回归问题的情况

2024-01-09

工人工作年限、年龄与对应薪水的数据集

$\mathbf{X^TX}$满秩情况

2024-01-08

一元线性回归模型(公式推导+举例应用)

工人工作年限与对应薪水的数据集。

2024-01-07

空空如也

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

TA关注的人

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