学习笔记
文章平均质量分 56
学习过程中的记录
freezing?
本人是一名计算机科学与技术本科学生,正在学习计算机相关知识和技术,主要擅长c/c++,java,python等编程语言,图像处理以及经典算法,linux终端,数据库等方面,希望多多交流学习
展开
-
【WINAPI】文件读写操作问题
调用WriteFile/ReadFile函数时,不能采用直接参数传递方式,而应该利用取地址符"&"将数据的内存首地址传入,这样便成功解决了问题。在利用WINAPI中的WriteFile和ReadFile函数进行文件读写操作时,出现无法正常读写文件报错。发现其中第二个参数,也就是需要写进文件的真实数据,其数据类型竟然是指针。查阅WINAPI源码,查看参数列表各个参数的数据类型。因此出现报错的原因是调用函数时值传递出现了问题。原创 2023-08-29 13:03:45 · 416 阅读 · 0 评论 -
【Qt】利用Tool Button控件创建下拉菜单按钮
基于qt的ui界面开发原创 2023-07-30 16:19:41 · 5850 阅读 · 1 评论 -
【高等数学】曲率和曲率半径
高等数学曲率半径和曲率原创 2022-11-06 20:24:14 · 7498 阅读 · 2 评论 -
【高等数学】反常积分敛散性的判定工具——P积分的敛散性
反常积分的敛散性判定工具,P积分的敛散性。原创 2022-11-04 10:50:08 · 28340 阅读 · 10 评论 -
机器学习——集成学习实验
实验名称:实验四、集成学习一、实验目的(1)掌握 AdaBoost 算法、随机森林算法的基本原理;(2)掌握 AdaBoost 算法实现和使用方法、以及随机森林算法的使用方法。二、实验内容\1. 使用 Python 语言实现 AdaBoost 算法,在马氙气数据集(horseColicTest.txt,horseColicTraining.txt)上训练一个集成分类器,估计马疝气的死亡率。要求:输出混淆矩阵,计算查准率、查全率和 F1 度量,并绘制 P-R 曲线。说明:数据集 horseColi原创 2022-05-07 03:03:14 · 2706 阅读 · 12 评论 -
机器学习——支持向量机(SVM)实验
一、实验目的(1)掌握支持向量机模型 SVM 的原理和使用方法。二、实验内容保持公司的员工满意的问题是一个长期存在且历史悠久的挑战。如果公司投入了大量时间和金钱的员工离开,那么这意味着公司将不得不花费更多的时间和金钱来雇佣其他人。以 IBM 公司的员工流失数据集(HR-Employee-Attrition.csv)作为处理对象,使用第三方模块sklearn 中的相关类来建立支持向量机模型,进行 IBM员工流失预测。要求:1)对数据集做适当的预处理操作;2)划分 25%的数据集作为测试数据;3)输原创 2022-04-26 22:13:48 · 5180 阅读 · 13 评论 -
机器学习——神经网络实验(附全过程代码)
实验名称:实验二、神经网络一、实验目的(1)掌握神经网络的 BP 算法原理与实现方法;(2)神经网络的构建、训练和测试方法。二、实验内容(1)BP算法使用 Python 语言编程实现标准 BP 算法和累积 BP 算法,在 wine 数据集(wine_data.csv)上分别使用这两个算法训练一个单隐层网络(如,13×100×3),并进行比较。要求:1)学习率 e 在[0.001, 0.5]内,分析 e 的大小对算法性能的影响;2)绘制均方误差随训练轮数的变化曲线;3)改变隐层神经元的个数,原创 2022-04-25 17:06:23 · 9228 阅读 · 5 评论 -
机器学习——线性回归与决策树实验(附效果以及完整代码)(数据集、测试集开源)
本实验环境基于anaconda+tensorflow原创 2022-04-11 00:00:44 · 6860 阅读 · 24 评论 -
prim算法求解最小生成树详解(附C++代码)
prim算法求解最小生成树详解(附C++代码)##问题分析对于最小生成树问题,有很多方法可以实现,本文章主要解析prim算法的实现。对于无向带权图,求解最小生成树,实际上是每次寻找每个节点最小的权值边,将该权值边的终点加入点集,最终的点集即为所求。##算法解析①初始化mst邻接矩阵,将自身和无法直接到达的点的值置为10000(相当于无穷大)。②prim算法实现,本文章实现的流程如下:1.建立结构体便于操作: struct node { int lowCost; }closeEdge[1原创 2021-06-20 01:17:48 · 2043 阅读 · 0 评论 -
分治算法——二分法寻找第n小元素(附完整代码)
问题描述寻找第n小元素可以由多种方式实现,但是利用分治算法可以高效求解。算法描述原创 2021-06-23 16:15:40 · 932 阅读 · 0 评论 -
动态规划——0/1背包问题详解(附C++完整代码)
问题分析背包问题可以通过贪心、动态规划等多种算法解决实现。本文章从动态规划的角度求解0/1背包问题。动态规划原理:是一种将问题实例分解为更小的、相似的子问题,并存储子问题的解而避免计算重复的子问题,以解决最优化问题的算法方法。0/1背包问题本质上是寻找全局最优解的问题,在尽量消耗小的背包容量的前提下,获得更多的价值。算法解析①首先要对w(容积权重)和v(价值量)两个数组进行初始化,注意因为后面我们在进行动态规划求解时,需要考虑到前一个状态的解,因此这两个数组需要留出数组首位置防止越界。for(int原创 2021-06-20 15:57:15 · 5072 阅读 · 2 评论 -
【N-Queen】N皇后问题(附完整C++代码)
问题分析N皇后问题是比较经典的问题,它蕴含了回溯的思想,本文章利用回溯算法求解N皇后问题。算法解析①本文章是逐行去搜索皇后的位置,每一行逐列检验该位置是否可以安放一个皇后,如果可以安放则记录列号;否则继续检索本行下一列。for(int i=0;i<queenNum;i++){//一行中,逐列去检索 if(isAble(rowNum,i)){//检验该位置是否可以安放 column[rowNum] = i;//记录列号 findQueen(rowNum+1);//下一行对下原创 2021-06-20 14:40:05 · 2622 阅读 · 0 评论 -
递归与分治——棋盘覆盖(全过程c++代码)
问题描述分治的技巧在于如何划分棋盘,使划分后的子棋盘的大小相同,并且每个子棋盘均包含一个特殊方格,从而将原问题分解为规模较小的棋盘覆盖问题。k>0时,可将2k×2k的棋盘划分为4个2(k-1)×2(k-1)的子棋盘。由于原棋盘只有一个特殊方格,即4个子棋盘中只有一个子棋盘包含该特殊方格,其余3个子棋盘中没有特殊方格。为了将这3个没有特殊方格的子棋盘转化为特殊棋盘,以便采用递归方法求解,可以用一个L型骨牌覆盖这3个较小棋盘的会合处,从而将原问题转化为4个较小规模的棋盘覆盖问题。递归地使用这种划分策略,原创 2021-06-21 11:08:34 · 939 阅读 · 0 评论 -
n支队伍循环赛安排(附完整代码)
问题分析循环赛问题属于分治思想的经典问题,主要先对最小模块初始化,通过递归,分治进行处理得到最终的赛程表。对于队伍数目并不是刚好为2的整数幂的情况,也做了相应的处理。算法解析①赛程表求解:分治思想1)首先对左上角第一个最小模块进行初始化 if(index==0){//初始化 arrangeTable[0][0] =1; arrangeTable[0][1] =2; arrangeTable[1][0] =2; arrangeTable[1][1] =1; index++;原创 2021-06-23 15:37:12 · 2635 阅读 · 0 评论 -
动态规划——矩阵连乘问题算法及实现详解(附完整代码)
问题分析矩阵连乘问题是经典的动态规划问题,其主要是n个矩阵进行矩阵乘法运算时,通过括号改变运算的先后顺序,减少运算次数,找到最佳划分方法,求解最少运算次数。算法分析矩阵连乘问题中动态规划可以帮助我们找到从每个矩阵到另一个矩阵的最小运算次数以及对应的划分,我们用dp[i][j]存储从矩阵A[i]到矩阵A[j]的运算次数。每当对从矩阵A[i]连乘到矩阵A[j]求解最小连乘括号划分时,我们引入A[i]到A[j]连乘序列中的一个矩阵A[k]。我们从第i+1个矩阵开始尝试,直到矩阵A[j],如果有更优解——得到原创 2021-06-22 22:55:40 · 21481 阅读 · 2 评论 -
回溯法实现全排列(附完整c++代码)
问题分析现有1-n连续自然数,求解这串数字所有的排列方式。可以利用递归和回溯对每个数字去寻找其在序列中的位置,因为一个序列中每个数字的位置是唯一且确定的。与N-Queen问题解决思路类似。算法解析①对于每个数字从第一个位置开始检验是否可以安放。如果可以就记录该数字的位置,并继续寻找下一个数字的位置。for(int i=0;i<size;i++){ if(isAble(num,i)){ column[num]=i;//记录该数字占据的位置 sortList(num+1);//原创 2021-06-21 16:10:09 · 1522 阅读 · 0 评论