查找算法
前言
教程来自B站的《算法导论》,算是中间部分。
但是感觉学完这一段,作用不大…有点鸡肋,希望优质思想能沉淀在脑海里。
哈希表
链接法
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112//链接法//除法哈希函数int hash(int k, int m){ return k % m;}//初始化除法哈希表node** Division_Hash_Init(int m, int *n, int num){ node** T; T = (node**)malloc(m * sizeof(node*)); for (int i = 0; ...
排序选择算法
前言
教材来自麻省理工版本的算法导论,B站亦有相应的高清视频可供观看
学习的目的一则是复现上课所讲的代码,二则是训练自己的编程水平(
排序算法
插入排序
12345678910111213141516void Insertion_Sort(int* a, int num){ int t; for (int i = 1; i < num; i++) { t = a[i]; int j = i - 1; while (j >= 0 && a[j] > t) { a[j + 1] = a[j]; j--; } a[j + 1] = t; }}
归并排序
1234567891011121314151617181920212223242526272829303132333435void Merge(int* a, int p, int q, int r){ int n1 = q - p + 1; int n2 = r - q; int* L, * ...
数据结构
前言
由于数据结构上课的的确确听的还认真,(的确,但凡C语言指针没有忘,上课就跟玩一样)但是呢…代码是一点都没有碰(哪怕是有上机作业呢:),加之想复习一下关于C/C++的代码以及代码的调试功能,于是开始了我的数据结构赎罪之路。
visual studio常见报错
使用了可能未初始化的本地指针变量“xxx
项目属性->配置属性->C/C++->SDL检查,选测是或者否。
线性表
带头结点的单链表
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 ...
R语言学习
前言
虽然但是,还是系统的学了一遍R。但实际体验下来,感觉和Python的pandas包非常的类似,感觉天下的统计的语言都是一家。
视频教程链接
基本数据结构
向量
基本概念
数值型
1> x <- c(1, 2, 3, 4, 5)
字符串型
1> y <- c("one", "two", "three")
逻辑型(全部大写)
12> z <- c (T, F, T)> z <- c (TRUE, FALSE, T)
等差数列
12> c(1:10) [1] 1 2 3 4 5 6 7 8 9 10
seq()函数
生成等差数列,from与to控制起始与终点,by控制数列间距,length.out控制数列个数
1234> seq(from = 1, to = 10, by = 5)[1] 1 6> seq(from = 1,to =10 , length.out=10) [1] 1 2 3 4 5 6 7 ...
矩阵与线性方程组
前言
该程序是我大一C语言课程一直延续至今的一个大程序,从C语言的基本高等代数的内容,再到C++时期用上了类的思想,最后在到数据结构课程设计里面用上了可视化写了一个交互式的计算器,真的是很不容易了!!最后在数值分析里面加上了数值分析专有的计算方法,也算是丰富了高等代数的内容,算是一个很好的补充。
该程序凝结了我大学的全部思想(bushi),虽然不是像计算机专业的课设一样高精尖,但是每一行代码都是自己亲手敲的,甚至为了学习二维数组的动态开辟,还专门系统重新学习了一遍指针,也算是对C的一个回顾吧。
再看矩阵时已不是少年……
矩阵功能
定义矩阵结构体
123456typedef struct Matrix { double** arr; int row; int col;}Matrix;
矩阵初始化
12345678910111213141516171819202122232425Matrix* MatrixInit(int m, int n){ Matrix* matrix = (Matrix*)malloc(sizeof(Matrix)); if (matr ...
吃豆人大逃亡
前言
想学一点大项目的编程,原因是在数学学院只学会了算法,对于一些大项目的处理略显得吃力。
还是很好玩的,突然发现自己设置的游戏好难,连自己的AI都赢不了。(我那个算什么辣鸡AI呢?)
下面是B站视频教程
需要额外安装easyx函数库
自己对游戏稍做了修改,增强了AI的追踪能力,虽然追踪看上去很弱鸡,但是被几个傻子壁咚肯定不好受(\汗)
下面是游戏地图,当然可以自己下载其他地图,代码鲁棒性还行。
代码
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301 ...
指针与结构体
前言
学习指的目的,有一点来头了且有一点绕。
我本是在做数值分析中矩阵行列式的MATLAB代码,但是之前C程序设计的课程报告里面已经把矩阵运算的各种代码编写的十分的完善。但是我在复现之中,想把动态开辟内存的C++方法new替换成C中的malloc进行动态开辟。但是自己搞了很久也没有搞懂如何动态开辟空间,所以就跟指针干上了。
下面是B站的课程:C指针视频教程
以及CSDN上面的博客总结了这个视频:视频知识点总结
C结构体视频教程
下面开始总结复习~
指针的基本概念
123456789int a = 4;int* p;//指针的声明p = &a;//取地址printf("p指向的地址为%d \n", p);printf("p所指向的值为%d \n", *p);//解引用printf("a的地址为%d \n", &a);printf("a的值为%d \n", a);
12345p指向的地址为5700172p所指向的值为4a的地址为5700172a的值为4
注:p指向的地址与a的地址在每一次 ...
贝叶斯滤波
前言
学习粒子滤波,主要是为了大创的IVR,系统的学习了一遍之后,发现大创也就如此,之前的一些疑惑都统统扫除,感觉自己也能对别人的论文挥斥方遒一样(bushi)
视频链接
# 贝叶斯公式
离散:
P(X=x∣Y=y)=P(Y=y∣X=x)P(X=x)P(Y=y)P(X=x|Y=y) = \frac{P(Y=y|X=x)P(X=x)}{P(Y=y)}
P(X=x∣Y=y)=P(Y=y)P(Y=y∣X=x)P(X=x)
连续:
P(X<x∣Y=y)=P(Y=y∣X<x)P(X<x)P(Y=y)P(X<x|Y=y) = \frac{P(Y=y|X<x)P(X<x)}{P(Y=y)}
P(X<x∣Y=y)=P(Y=y)P(Y=y∣X<x)P(X<x)
定理:
fX(x)∼N(u1,σ12),fY∣X(y∣x)∼N(u2,σ22)fX∣Y(x∣y)∼N(σ12σ12+σ22u2+σ22σ12+σ22u1,σ12σ22σ12+σ22)f_{X}(x) \sim N(u_1,\sigma_1 ^2),f_{Y|X}( ...
前端学习
HTML
html基本结构
后缀:.html
html:制作网页的语言
浏览器:编译html语言
标记:由特定字符进行分割
语法:<特殊字符>,成对出现
基本语法
1234567891011<!DOCTYPE html><html> <head> <title>标题</title> <meta/> </head> <body> 网页的主体 </body></html>
一对标签之间的内容是文本内容
属性
标签内部<标签名 属性名=“值”>
注释
1<!--注释内容-->
基本标签
标题标签
123456789<h1> 一级标签</h1><h2> ...</h2><h6> ...一直到</h6>
属性
描述
值
align
对齐方式
left|rig ...
数据挖掘
前言
写在前面
虽然这门课学习了机器学习的相关知识,但是只是基于sklearn包scikit-learn中文社区进行调参,并没有手动实践机器学习的相关算法。只能说是对机器学习这门课有一个大概的初步认识,加之老师讲课的内容比较基础,关于机器学习的知识大多都是B站自学的。(其实就是上课没听过课而已)
书籍采用的是李航版本的《统计学习方法》,B站上有很多教程,所以不推荐硬啃书,看视频消化的更快。视频链接:十分钟机器学习
可能后期会自主编写相关机器学习的代码,从最基本的感知机开始……那都是后话了。
工具
老师推荐的是Spyder(其实Anaconda里面自带了),但是这里更加推荐的是Pycharm里面的Juypter。
配置Python环境
安装虚拟环境
1conda create -n sklearn python=3.8
激活虚拟环境
12conda activate sklearn
安装包
1234567891011conda install numpyconda install scipyconda install scikit-learnconda inst ...