- 博客(40)
- 收藏
- 关注
原创 PTA 1002
PTA 1002题目解题思路本题使用map STL容器储存指数和系数,由于题目限制指数最大为999,所以map大小最大为1000(其中还包括最开始的k)。(也可以使用数组进行存储)#include<iostream>#include<map>using namespace std;int main(){ int k, n; //项数, 指数 double an; //系数 map<int, double> mp; ci
2022-04-03 16:29:31
275
原创 PTA 1001
PAT 1001题目解题方法方法一方法二题目解题方法方法一由于题目限制两个输入取值范围都是10^6次方,所以两者加和不会超过10的7次方,所以创建包含3个元素的数组即可使用。注意输出0的时候变为000,10的时候变为010等#include <stdio.h>#include <stdlib.h>int main(){ int a, b, sum, k = 0, flag = 1; int group[3]; //最多10^7次方,所以数字三个
2022-04-02 23:00:27
269
转载 Canny边缘检测算法原理及C语言实现详解
原文链接:https://www.cnblogs.com/love6tao/p/5152020.html
2021-11-13 15:00:04
360
转载 从集成学习到模型的偏差和方差的理解
从集成学习到模型的偏差和方差的理解https://blog.youkuaiyun.com/xmu_jupiter/article/details/47314927
2021-11-11 09:29:56
92
转载 经验风险最小化和结构风险最小化
在假设空间、损失函数以及训练数据集确定的情况下,经验风险函数式就可以确定。经验风险最小化的策略认为,经验风险最小的模型是最优的模型。根据这一策略,按照经验风险最小化求解最优模型就是求解最优化问题: 当样本容量足够大时,经验风险最小化能保证很好的学习效果,在现实中被广泛采用。比如,极大似然估计就是经验风险最小化的一个例子。当模型是条件概率分布,损失函数是对数函数时,经验风险最小化就等价于极大似然估计。但是,当样本
2021-11-11 09:12:28
887
转载 过拟合欠拟合及解决原因
总结一下:欠拟合:泛化能力差,训练样本集准确率低,测试样本集准确率低。过拟合:泛化能力差,训练样本集准确率高,测试样本集准确率低。合适的拟合程度:泛化能力强,训练样本集准确率高,测试样本集准确率高欠拟合原因:1.训练样本数量少2.模型复杂度过低3.参数还未收敛就停止循环欠拟合的解决办法:1.增加样本数量2.增加模型参数,提高模型复杂度3.增加循环次数4.查看是否是学习率过高导致模型无法收敛过拟合定义:模型在训练集上的表现很好,但在测试集和新数据上的表现很差。过拟合原因1.模型.
2021-11-11 08:30:39
4914
原创 SVM支持向量机
SVM线性可分支持向量机一.线性可分二.间隔1.函数间隔2.几何间隔3.两者关系三.硬间隔最大化1.约束最优化问题2.线性可分支持向量机3.支持向量和间隔边界4.对偶算法线性支持向量机1.软间隔最大化4.信息增益算法5.信息增益存在的问题6.信息增益比三.决策树的剪枝1.防止过拟合:2.预剪枝:3.后剪枝:4.两者比较:*缺失值处理四.决策树优缺点优点缺点一.原理1.学习算法定义启发式方法,递归地选择最优特征,并根据该特征对训练数据进行分割,使得各个子数据集有一个最好的分类的过程2.树停止的条件(1)当前节点包含的样本全属于同一类别,无需划分(2)当前属性集为空,或所有样本
2021-11-10 12:37:36
1499
原创 朴素贝叶斯算法
朴素贝叶斯算法一.基本方法1.给定训练数据集2.学习先验概率分布3.学习条件概率分布4.进行条件独立性假设5.以后验概率最大的类输出二.参数估计--最大似然1.先验概率2.条件概率三.算法流程四.贝叶斯估计五.优缺点1.主要优点2.主要缺点一.基本方法1.给定训练数据集2.学习先验概率分布3.学习条件概率分布4.进行条件独立性假设条件独立性假设是说用于分类的特征在类确定的条件下都是条件独立的5.以后验概率最大的类输出二.参数估计–最大似然学习意味着估计类的先验概率和条件概率1.
2021-11-10 12:27:20
549
原创 2021-10-21 数组(简单)
数组(简单)剑指 Offer 03. 数组中重复的数字剑指 Offer 11. 旋转数组的最小数字剑指 Offer 03. 数组中重复的数字class Solution {public: int findRepeatNumber(vector<int>& nums) { unordered_map<int, int> res; for(int i = 0; i < nums.size(); i++){
2021-10-21 19:21:18
79
原创 2021-10-19 数组(简单)
数组(简单88. 合并两个有序数组88. 合并两个有序数组方法一class Solution {public: void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) { int l = 0, r = 0; vector<int> res; while(l < m && r < n){
2021-10-19 22:03:12
78
原创 2021-10-18 数组(简单)
数组35. 搜索插入位置53. 最大子序和35. 搜索插入位置class Solution {public: int searchInsert(vector<int>& nums, int target) { int l = 0, r = nums.size() - 1; while(l <= r){ int mid = l + (r - l) / 2; if(nums[mid] <
2021-10-18 21:55:40
87
转载 卷积特征图可视化
卷积特征图可视化代码解析(含有注释)目录格式初始化加载模型输出卷积层信息可视化卷积核可视化图像生成每个卷积层的特征图特征图可视化部分特征图图片参考https://debuggercafe.com/visualizing-filters-and-feature-maps-in-convolutional-neural-networks-using-pytorch/代码解析(含有注释)目录格式图片来自https://pixabay.com/zh/photos/cat-red-cat-cat-s-
2021-10-18 19:30:56
3967
1
原创 2021-10-17 数组(简单)
数组一1. 两数之和26. 删除有序数组中的重复项27. 移除元素1. 两数之和class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { unordered_map<int, int> a; for(int i = 0; i < nums.size(); i++){ if(a.find(targ
2021-10-17 19:57:27
78
原创 软件构造笔记(十六)---PPT第十二讲
面向正确性与健壮性的软件构造两个特性健壮性正确性错误与异常ErrorExceptionchecked Exceptiontry-catch-finallyunchecked Exception自定义异常类Assertions两个特性健壮性1.健壮性:系统在不正常输入或不正常外部环境下仍能够表现正常的程度。2.面向健壮性的编程(1)处理未期望的行为和错误终止(2)即使终止执行,也要准确/无歧义的向用户展示全面的错误信息(3)错误信息有助于进行debug尽可能保持软件运行而不是总是退出两者的比较
2021-07-04 11:30:20
242
原创 软件构造笔记(十五)--PPT第十一讲
面向可复用性和可维护性的设计模式Creational patterns 创建型模式Structural patterns 结构型模式Adapter 适配器模式Decorator 装饰器模式Behavioral patterns 行为类模式Strategy 策略模式Template Method 模板模式IteratorVisitor设计模式的对比共性模式1共性模式2Creational patterns 创建型模式工厂方法模式 当client不知道要创建哪个具体类的实例,或者不想在clie
2021-07-03 15:53:22
250
原创 软件构造笔记(十四)---PPT第十讲
面向可维护性的构造技术OO设计原则:SOLID(SRP) The Single Responsibility Principle(OCP) The Open-Closed Principle(LSP) The Liskov Substitution Principle(ISP) The Interface Segregation Principle(DIP) The Dependency Inversion PrincipleOO设计原则:SOLID(SRP) The Single Resp
2021-07-03 13:50:34
190
原创 软件构造笔记(十三)---PPT第九讲
面向复用的软件构造技术LSP原则-Liskov替换原则协变 Co-variance通配符逆变 Contra-variance比较Comparator< T>Comparable< T>Delegation 委派CRP委派的四种形式白盒框架黑盒框架LSP原则-Liskov替换原则一.基本内容(子类型多态)1.子类型可以增加方法,但不可删2.子类型需要实现抽象类型中的所有未实现方法3.子类型中重写的方法必须有相同或子类型的返回值或者符合co-variance的参数4.子类型
2021-07-03 11:21:48
211
原创 软件构造笔记(十二)---PPT第八讲
ADT和OOP中的等价性前言引用等价性对象等价性equals()函数hashcode()函数观察等价性行为等价性总结前言等价性的划分:不可变对象的引用等价性==和对象等价性equals()可变对象的观察等价性和行为等价性引用等价性== 操作符比较引用。它测试引用相等。两个引用是 == 如果它们指向内存中的相同存储。在快照图中,如果两个引用的箭头指向同一个对象气泡,则它们为==。== 对基本数据类型,使用== 判定相等对象等价性equals()函数equals()操作比较对象内容——换
2021-07-02 17:17:31
218
原创 软件构造笔记(十一)---PPT第七讲
面向对象的编程静态/实例方法接口接口和类静态工厂方法default三个关键字重写 Override重载 Overrload泛型静态/实例方法静态变量/方法:与类关联的变量,而不是与类的实例关联的变量。若将方法与类关联,则为静态方法 要引用类变量和方法,可以用句点(’.’)将类的名称和类方法或类变量的名称连接起来实例变量/方法:不是类方法或类变量的方法和变量称为实例方法或实例变量。 要引用实例方法和变量,必须引用来自类实例的方法和变量。总结:类变量和类方法与一个类关联,并且每个类只出现一次
2021-07-02 16:17:25
187
原创 软件构造笔记(十)---PPT第六讲
抽象数据类型ADTADT操作的四种类型Creator 构造器Producer 生产器Observer 观察器Mutator 变值器测试四种类型ADT特性表示独立性 Representation Independence不变量 InvariantsAF和RI两个空间抽象函数AF表示不变量RI总结抽象类型:强调“作用于数据上的操作”,程序员和client无需关心数据如何具体存储的,只需设计/使用操作即可。可变类型的对象:提供了可改变其内部数据的值的操作不变数据类型: 其操作不改变内部值,而是构造新的对象
2021-07-01 21:16:05
177
原创 软件构造笔记(九)---PPT第五讲
设计规约行为等价性规约前置/后置条件设计规约规约的强度行为等价性举例来说:站在客户的角度,下面两个函数行为是否等价分情况:1.当val缺失时,findFirst返回arr的长度,findLast返回-12.当val出现两次时,findFirst返回较低的索引,findLast返回较高的索引。3.但是当val恰好出现在数组的一个下标处时,这两个方法的行为是相同的。当它们调用这个方法时,它们将传入一个包含一个元素val的arr。对于这样的客户端,这两个方法是相同的。所以,其实现在没有办法准确定义
2021-07-01 17:15:56
180
原创 软件构造笔记(八)---PPT第四讲
数据类型与类型检查数据类型静态/动态类型检查静态类型检查原理种类动态类型检查种类两者关系可变/不变的数据类型不变的数据类型finalString特点可变的数据类型StringBuilder特点解决可变类型不安全的方法Snapshot理解数据类型数据类型基本数据类型/对象数据类型静态/动态类型检查静态类型检查原理 可在编译阶段发现错误,避免了将错误带入到运行阶段,可提高程序正确性/健壮性。 Java是静态类型语言,所有变量的类型在编译时(在程序运行之前)都是已知的,因此编译器也可以推导
2021-07-01 16:11:21
130
原创 软件构造笔记(七)---PPT第三讲
软件测试与测试优先测试优先编程测试优先编程1.白盒测试:对程序内部代码结构的测试2.黑盒测试:对程序外部表现出来的行为的测试3.过程:(1)先写spec(2)写符合spec的测试用例(3)写代码,执行测试,有问题再改...
2021-07-01 14:16:12
194
原创 软件构造笔记(六)---PPT第一讲
多维度视图和质量目标多维度试图Build-time1.build-time\moment\code-level view2.build-time\period\code-level view3.build-time\moment\component-level view4.build-time\period\component-level viewRun-time1.run-time\moment\code-level view2.run-time\period\code-level view3.run-t
2021-06-28 19:41:55
133
原创 HIT hello的一生---2021大作业
程序人生-Hello’s P2P摘要第1章:概述1.1 HELLO简介1.2 环境与工具1.3 中间结果1.4 本章小结第2章 预处理2.1 预处理的概念与作用2.2在UBUNTU下预处理的命令2.3 HELLO的预处理结果解析2.4 本章小结第3章 编译3.1 编译的概念与作用3.2 在UBUNTU下编译的命令3.3 HELLO的编译结果解析3.3.1 数据3.3.2 赋值3.3.3 关系操作3.3.4 算术操作3.3.5 函数操作3.4 本章小结第4章 汇编4.1 汇编的概念与作用4.2 在UBUNTU
2021-06-23 14:36:51
223
原创 工厂方法--笔记四
工厂方法使用原因示例三级目录使用原因当client不知道要创建哪个具体类的实例,或不想再client代码中指明要具体创建的实例时,用工厂方法。定义一个用于创建对象的接口,让其子类来决定实例化哪一个类,从而使一个类的实例化延迟到其子类。示例小A要开两个工厂做衣服,分别做短袖和长袖三级目录...
2021-06-21 08:37:34
81
原创 软件构造笔记(三)
判断ADT中的等价性一.引用等价性 ==二.对象等价性 equals前言:在很多场景下,需要判定两个对象是否“相等”,本文主要讨论==和equals的区别。一.引用等价性 ==对基本数据类型,使用==判定相等二.对象等价性 equals1.对对象类型,使用equals判定相等2.equals的实现:public class Object{ ... public boolean equals(Object that){ return this == that; //在对象等价性的判断是
2021-06-21 07:58:04
99
原创 软件构造笔记(二)
面向复用的软件构造技术一.复用基本概念(一)复用编程:(二)四类复用级别:二.LSP--Liskov Substitution Principle(一)内容:(二)协变:(三)逆变:三.Delegation一.复用基本概念(一)复用编程:1.programming for reuse 面向复用编程:开发出可复用的软件2.programming with reuse 基于复用编程:利用已有的可复用软件搭建应用系统(二)四类复用级别:1.源代码级别的复用2.模块级别的复用:类、抽象类、接口3.库
2021-06-12 08:54:33
1228
1
原创 软件构造笔记(一)
笔记一Java基本知识一. String、StringBuilder、StringBuffer类二. Map类基本用法多维度视图和质量目标总结一.描述软件系统的三个维度二. AST三.质量属性Java基本知识一. String、StringBuilder、StringBuffer类运行速度:StringBuilder>StringBuffer>String原因:String是字符串常量,StringBuilder和StringBuffer是字符串变量,String对象一旦创建之后该对象是
2021-05-04 23:56:52
187
原创 力扣--动态规划专题 I
题目列表1.300-最长递增子序列2. 剑指offer42.连续子数组的最大和3.70--爬楼梯4.413--等差数列划分5.64--最小路径和6. 542--01矩阵7.221-最大正方形8.1277-统计全为1的正方形子矩阵1.300-最长递增子序列(1)题目条件:(2)题解:动态规划构建一个与nums数组长度相等的dp数组,dp[i]为以第i个元素结尾的最长子序列的长度,并设置初值均为1。遍历数组nums,当遍历到元素nums[i]时,dp[0…i-1]都被算出,所以dp[i]的状态转移
2021-03-31 20:14:47
211
原创 力扣---数组专题I (简单)
题目名称1.867--转置矩阵--简单2.面试题 17.10. 主要元素3. 977-有序数组的平方4. 628-三个数的最大乘积1.867–转置矩阵–简单(1)题目条件:(2)代码:class Solution {public: vector<vector<int>> transpose(vector<vector<int>>& matrix) { int m = matrix.size(), n = matrix
2021-03-25 19:12:06
247
转载 gcc常用命令行编译指令
1. gcc -E source_file.c-E,只执行到预编译。直接输出预编译结果。2. gcc -S source_file.c-S,只执行到源代码到汇编代码的转换,输出汇编代码。3. gcc -c source_file.c-c,只执行到编译,输出目标文件。4. gcc (-E/S/c/) source_file.c -o output_filename-o, 指定输出文件名,可以配合以上三种标签使用。-o 参数可以被省略。这种情况下编译器将使用以下默认名称输出:-E:预编译结果将
2021-03-19 11:17:47
1720
原创 CSAPP--DataLab
文章目录前言1.bitXor2.tmin3.isTmax4.allOddBits5.negate6.isAsciiDigit7.conditional8.isLessOrEqual9.logicalNeg10.howManyBits前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考1.bitXor//1/* * bitXor -
2021-03-16 19:04:05
519
原创 CSAPP 练习题3.4
题目条件src_t *sp; dest_t *dp;sp和dp的值分别存储在寄存器%rdi和寄存器%rsi中,表中每个表项应实现两条指令,第一条是从内存中读数,做适当的转换,并设置寄存器%rax的适当部分。第二条指令是要把%rax的适当部分写到内存。在这两种情况下,寄存器的部分可以是%rax,%eax,%ax或%al。当执行强制类型转换既涉及大小变化又涉及C语言中符号变化时,操作应先改变大小要求实现: *dp = (dest_t)*sp;src_tdest_t指令long
2021-03-16 17:49:03
1344
2
原创 Ubuntu--用GCC编译helloworld的c程序
安装好Ubuntu之后,最重要的就是用Linux系统进行编译,在查找了许多资料之后,终于能够运行出一个helloworld的c程序了,以下是编译的过程演示1.安装gcc编译器只有安装了gcc才能进行编译,所以安装gcc是第一步。(1)首先更新包列表:sudo apt update输入密码时不会显示密码,输入之后直接按回车就可以了(2)安装软件包:sudo apt install build-essential这个软件包已经包含了gcc、g++等(或者可以输入 sudo apt-get ins
2021-03-11 22:29:00
3851
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人