- 博客(27)
- 收藏
- 关注
原创 C++ 学习笔记
C/C++ 变量函数前 加 (void)变量前加 (void):是一种伪装手法,对程序没有影响,目的是消除编译器的警告。如果一个变量定义了,但是没有被后续代码使用,编译器就会给出警告,而(void)a;这样的代码虽然啥也没做,却可以消除编译器产生的警告。函数前加 (void):目的就是让源代码顺利通过一些严格的检查工具的检查如 Lint。...
2022-05-11 15:18:13
233
原创 WSL删除文件后,Windows未释放空间
How to Shrink a WSL2 Virtual Disk进入powershelldiskpartselect vdisk file="C:\Users\admin\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc\LocalState\ext4.vhdx"compact vdisk
2022-02-10 20:37:04
2109
原创 Git使用记录(二)—— git常用命令
分支查看本地分支:git branch 查看所有分支:git branch -a创建本地分支:git checkout -b <branch>推送到远程分支:git push origin <branch>切回分支:git checkout <branch>删除本地分支:git branch -d <branch>删除远程分支:git push origin --delete <branch>...
2022-01-22 14:10:56
2065
原创 ROS: sudo rosdep init报错无法下载
问题:sudo rosdep initcannot download from…rosdep updateerror/timeout解决方法:下载rosdistro到本地,替换配置文件,具体如下链接:解决方案
2021-12-29 17:14:06
927
原创 软件测试——随笔
软件缺陷软件未实现产品说明书要求的功能;软件出现了产品说明书指明不应该出现的错误;软件实现了产品说明书未提到的功能;软件未实现产品说明书虽未明确提及但应该实现的目标;软件难以理解、不易使用、运行缓慢或者——从测试员的角度看——最终用户会认为不好。测试用例需要细节和真实,但不需要太详细(容易阻滞测试工作);编写测试计划:测试设计说明、测试用例说明、测试过程说明;...
2021-12-20 19:31:38
7841
原创 Leetcode(一)滑动窗口套路
滑动窗口模板:/* 滑动窗口算法框架 */void slidingWindow(string s, string t) { unordered_map<char, int> need, window; for (char c : t) need[c]++; int left = 0, right = 0; int valid = 0; while (right < s.size()) { // c 是将移入窗口的字符
2021-10-06 20:47:17
90
原创 机器学习 (六) 过拟合与欠拟合 (Overfitting & Underfitting)
偏差(Bias)与方差(Variance)如上图,偏差(Bias) 代表欠拟合(Underfitting),即训练集与验证集的误差都很大;**方差(Variance)**代表过拟合(Overfitting),即训练集误差很小,但验证集误差很大。high Variancehigh biashigh bias & high variance(欠拟合)low bias & low variance (过拟合)Training Set Error1%15%15%
2021-04-23 05:24:20
1593
原创 机器学习 (五) 多分类问题(KNN & softmax)
机器学习多分类问题机器学习中大部分方法主要解决二分类问题,例如逻辑回归,SVM,决策树等,这些算法当然也可处理多分类问题,但是需要修改处理。机器学习中处理多分类问题最简单常用的是K近邻(K-Nearest Neighbour) 与softmax。K-Nearest Neighbourk近邻算法是一种基本分类和回归方法。K-NN algorithm,是给定一个数据集,当有新的输入实例时,计算该输入实例与给定数据集所有实例的距离(欧氏距离)。然后在给定数据集中找到与该输入实例距离最短的K个实例,这K个
2021-04-18 06:03:00
4677
原创 Git使用记录 (一) 本地文件上传到GitHub远程仓库
本地文件如何上传到GitHub远程仓库1、在百度上搜索并下载GitBash,并安装2、在你想要创建仓库的位置,创建文件夹,然后初始化目录。git init 3、然后去你的GitHub主页,创建一个仓库,创建后将仓库的地址复制出来。4、回到本地,你初始化本地仓库的地方,用如下命令,将你远程的仓库克隆下来。git clone https://github.com/YourName/YourRepo.git 5、clone好后,将会发现本地仓库中多了一个文件夹,与GitHub主页上的仓库名相
2021-03-25 21:54:01
172
原创 机器学习 (四) 逻辑回归(计算图表示)
逻辑回归给定输入xxx,使得假设函数在0≤hθ(x)≤10 \leq h_\theta(x) \leq 10≤hθ(x)≤1分布,hθ(x)=g(z)h_\theta(x)=g(z)hθ(x)=g(z)为了使预测值在[0,1][0,1][0,1]分布,选择sigmoid函数:g(z)=11+e−zg(z)=\frac{1}{1+e^{-z}}g(z)=1+e−z1Loss Function 损失函数L(hθ(x),y)=−ylog(hθ(x))−(1−y)log(1−hθ(x))L(h_
2021-03-23 22:56:05
527
原创 机器学习 (三) 向量化代替求和
向量化方法假设一个求和函数为:hθ(x)=∑j=0nθjXjh_\theta(x)=\sum^{n}_{j=0}\theta_jX_jhθ(x)=j=0∑nθjXjθ\thetaθ为[θ1θ2θ3]\begin{bmatrix} \theta_1\\ \theta_2\\ \theta_3 \end{bmatrix}⎣⎡θ1θ2θ3⎦⎤, XXX为[x1x2x3]\begin{bmatrix} x_1\\ x_2\\
2021-03-21 22:35:58
297
原创 机器学习 (二) 线性回归 & 多项式回归
线性回归(Linear Regression)主要分析两种线性回归模型:简单线性回归(Simple Linear Regression): 只有两类输出(e.g. (0,1))多元线性回归(Multiple Linear Regression): 有多个分类输出(e.g. (0,1,2,3))Simple Linear Regression对于简单线性回归,h的假设函数hθ(x)=θ0+θ1xh_\theta(x)=\theta_0+\theta_1xhθ(x)=θ0+θ1xCost
2021-03-21 07:25:48
548
原创 机器学习(ML)(一)
Definition机器学习尚未有一个官方明确的定义,全看个人理解。特别喜欢Tom Mitchell对于机器学习的定义:A computer program is said T learn from experience E with respect some tasks T and some performance measure P, if its performance on T, as measure by P, improves with experience E.我的理解: 机器学习就是计
2021-03-20 18:48:32
252
原创 图灵学习(二) 图灵学习实现步骤
图灵学习实现步骤的理解Turing Learning Implementation steps:Training data. Genuine data samples from actual hardware (e.g. data comes from experiment with e-puck).Model representation. In any form, while neural networks are applied widely. Objective is to produce
2021-03-20 07:26:43
232
原创 图灵学习(一) 图灵学习思路
图灵学习的思路图灵学习(Turing Learning) 和GANs神经网络很相似,但是更泛化,加入了图灵测试的思想(模型和分类器共同存在且互相促进),它是GANs的generalization版本。图灵学习不仅有模型(model),还有鉴别器(discriminator),类似于GANs。鉴别器将同时控制实际的机器人(在仿真中)以及它的候选模型(在仿真中)。模型将会生成鉴别起在控制时需要的数据。因此,鉴别器可以根据数据为模拟器选择不同的控制输入。鉴别器的目标是确定它获得的数据是来自实际的机器人还是来自
2021-03-20 07:26:01
845
原创 机器人自我恢复(一) Hod Lipson的论文解读
Understanding of “Resilient Machines Through Continuous Self-Modeling”目标:机器人恢复功能 (模仿动物的自我恢复能力)目前,大多数机器人系统手动创建数学模型以获取机器人的运动(dynamics),然后进行运动规划。即使 参数识别(parametric identification) 可以自动改进这些模型,为复杂系统手动建立准确的模型是十分困难的,尤其在尝试处理机器人身体的拓扑变化(例如:损坏引起的改变)时。Hod LIpson及其团
2021-03-19 04:02:41
532
原创 关于微信开发小程序如何实现页面导航
关于微信开发小程序如何实现页面导航navigator的使用navigator是页面链接组件,相当于Html标签集中的a标签。当需要从一个页面跳转到另一个页面时,使用该组件。navigator组件根据open-type属性不同,分别对应于5个小程序导航API:1、当open-type为navigate,相当于wx.navigateTo2、当open-type为redirect,相当于wx.redirect3、当open-type为switchTab,相当于wx.switchTab4、当open-t
2021-03-18 07:11:13
672
原创 希尔排序
希尔排序希尔排序的实质就是分组插入排序,该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。因为直接插入排序在元素基本有序的情况下(接近最好情况),效率是很高的,因此希尔排序在时间效率上比前两种方法有较大提高。以n=10的一个数组49, 38, 65, 97, 26, 1
2021-03-18 07:10:08
182
原创 选择排序
选择排序一. 算法描述选择排序:比如在一个长度为N的无序数组中,在第一趟遍历N个数据,找出其中最小的数值与第一个元素交换,第二趟遍历剩下的N-1个数据,找出其中最小的数值与第二个元素交换…第N-1趟遍历剩下的2个数据,找出其中最小的数值与第N-1个元素交换,至此选择排序完成。以下面5个无序的数据为例:56 12 80 91 20(文中仅细化了第一趟的选择过程)第1趟:12 56 80 91 20第2趟:12 20 80 91 56第3趟:12 20 56 91 80第4趟:12 20 56
2021-03-18 07:09:34
126
原创 归并排序
归并排序归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。 //将有序数组a[]和b[]合并到c[]中 void MemeryArray(int a[], int n, int b[], int m, int c
2021-03-18 07:08:32
149
原创 直接插入排序
直接插入排序直接插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。设数组为a[0…n-1]。1.初始时,a[0]自成1个有序区,无序区为a[1…n-1]。令i=1将a[i]并入当前的有序区a[0…i-1]中形成a[0…i]的有序区间。i++并重复第二步直到i==n-1。排序完成。下面给出严格按照定义书写的代码(由小到大排序): void Insertsort1(int
2021-03-18 07:07:39
100
原创 堆排序
堆排序1.堆堆实际上是一棵完全二叉树,其任何一非叶节点满足性质:Key[i]<=key[2i+1]&&Key[i]<=key[2i+2]或者Key[i]>=Key[2i+1]&&key>=key[2i+2]即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。堆分为大顶堆和小顶堆,满足Key[i]>=Key[2i+1]&&key>=key[2i+2]称为大顶堆,满足 Key[i]<=key[2i+1
2021-03-18 07:04:58
101
原创 C++ static
结论1:不能通过类名来调用类的非静态成员函数。结论2:类的对象可以使用静态成员函数和非静态成员函数。结论3:静态成员函数中不能引用非静态成员。结论4:类的非静态成员函数可以调用用静态成员函数,但反之不能。结论5:类的静态成员变量必须先初始化再使用。静态函数与普通函数不同,它只能在声明它的文件当中可见,不能被其他文件使用。普通的成员函数一般都隐藏了一个this指针,this指针指向类的对象本身,因为普通成员函数总是具体的属于某个类的具体对象的。通常情况下,this指针是缺省的、但是与普通函数相比,
2021-03-18 07:03:33
118
原创 C++ 数组动态分配
#include <iostream.h>#include <string.h>void main(){ int n; char *pc; cout<<"请输入动态数组的元素个数"<<endl; cin>>n; //n在运行时确定,可输入17 pc=new char[n]; //申请17个字符(可装8个汉字和一个结束符)的内存空间 strcpy(pc,“堆内存的动态分配”);//
2021-03-18 07:02:41
529
原创 冒泡排序
冒泡排序在冒泡排序中,最重要的思想是两两比较,将两者较少的升上去冒泡排序最坏情况的时间复杂度是O(n²)My Codevoid bubbleSort(int data[], int n){ int temp=0; int i,j; for(i=0;i<n-1;++i) { for(j=0;j<n-i-1; ++j) { if(data[j]>data[j+1]) {
2021-03-18 07:00:58
89
原创 折半插入排序
折半插入排序插入的基本思想①每次插入,都从前面的有序子表中查找出待插入元素应该被插入的位置;②给插入位置腾出空间,将待插入元素复制到表中的插入位置。 注意到该算法中,总是边比较边移动元素,下面将比较和移动操作分离开来,即先折半查找出元素的待插入位置,然后再同意地移动待插入位置之后的所有元素。当排序表为顺序存储的线性表时,可以对直接插入排序算法作如下改进:由于是顺序存储的线性表,所以查找有序子表时可以用折半查找来实现。在确定出待插入位置后,就可以同意地向后移动元素了。 时间复杂度:O(n
2021-03-18 06:56:46
108
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人