鉏飞祥的博客

邮箱cifeixiang@163.com

O(n)时间复杂度找到数组中任意一个重复元素

解决思路 用计数排序的思想排序,直到发现重复的结束。 关于计数排序请看:计数排序 代码 #include<stdio.h> /*检查数组中重复的元素,并输出,数组里面的整数大小不超过n-1,n是数组规模 采用交换下标的方式,时间复杂度为n*/ void ...

2018-11-22 18:40:09

阅读数:52

评论数:1

Adaboost集成学习方法用于二分类(基于感知机)

Adaboost原理 开始时,算法为每个训练样本分配相同的权值,然后用弱分类器进行训练,把错分的样本对应得权值增加,对分的样本权值减小或者不变,再把权值归一化,并记录这个分类器的总错误率。 如此迭代,最后将多个弱分类器进行有权值(错误率)的集成 代码 function adaboost() clc...

2018-11-19 23:54:21

阅读数:40

评论数:0

随机森林原理及其用于分类问题的matlab实现

随机森林 随机森林是多个决策树的集成学习,每个决策树用bagging的方法选数据集,并且在选择最佳属性划分的时候随机划分一些属性进行分类,比单个分类器效果更好,泛化能力更强。 代码解释 1.用结构体的嵌套实现树的结构。 2.makerandomtree递归的创建树。 3.可自动适应不同的类别标签,...

2018-11-16 22:03:33

阅读数:89

评论数:3

决策树matlab实现二分类或者多分类

代码解释 maketree函数递归建立树 tree=struct(‘isnode’,1,‘a’,0.0,‘mark’,0.0,‘child’,{}) 所有分支递归的存在child{}中 函数gan(D)计算D的信息率 代码可以自动适应不同的分类标签和类别个数 代码 function tree=ma...

2018-11-16 17:41:50

阅读数:134

评论数:0

BP神经网络实现分类问题(python)

一些代码解释 python版本:3.6 梯度更新 下面的代码 是对输出层和隐层的梯度计算,具体可参考周志华机器学习103页梯度更新公式 for i in range(self.outputn):#计算输出层的梯度 y=self.o[i] ...

2018-11-14 20:06:12

阅读数:722

评论数:0

神经网络-感知机原理及其matlab代码实现二分类

感知机简介 感知机是最简单的神经网络,结构如下图所示: 感知机由输入层和输出层组成,输入层可以有多个,输入的结果等于每个输入神经元和权值的乘积xw的和: y=x1w1+x2w2-θ 其中θ可以固定为-1,因此感知机通过不断训练来优化权值 感知机用于分类 如图,分类的目的是找到一个...

2018-11-12 15:09:22

阅读数:70

评论数:0

朴素贝叶斯原理(naive bayes)及其matlab代码

朴素贝叶斯原理 贝叶斯决策以概率决策为基础。在假设错分代价相同的情况下,最小化错误率可以等价的看作最大化后验概率, 即是 max P(c|x)=P(c )P(x|c)/P(x). 朴素贝叶斯假设属性之间都是互相独立的,则判别准则可以看作: Hnb(x)=argmax P(...

2018-11-10 15:17:01

阅读数:79

评论数:0

K-means聚类matlab实现

K-means kmeans用贪心策略,能十分简单有效的聚类,但是k的选取会影响聚类效果。 聚类效果 初始数据集 聚类之后,红色*是聚类中心 代码 function kmeans() clear all; clc; k=3;%k为聚类个数 x = 0.8 + sqrt(0.01) * rand...

2018-11-09 23:19:55

阅读数:55

评论数:0

KNN分类算法原理及其Matlab实现

KNN算法原理 K近邻算法是一种简单的监督学习算法。对于给定测试样本,直接计算该样本和训练集的距离,将距离最近的k个“邻居”点的类别作为参考,作为预测结果返回。 测试数据 测试数据来自林智仁的分类任务数据集,链接:(https://www.csie.ntu.edu.tw/~cjlin/)...

2018-11-09 21:40:10

阅读数:103

评论数:0

c语言冒泡排序

#include<stdio.h> int main() { void bubble_sort(int *a,int n); int a[10]={10,5,8,6,4,1,2,3,6,0},i; bubble_sort(a,10...

2018-06-25 20:28:05

阅读数:66

评论数:0

AOJ--字符串全排列

问题 设计算法生成n个元素{r1,r2,…,rn}的全排列。n<=10。按照字典序排列。 思路 可以将问题递归的看作两个部分: 1、依次将字符串的每一个按顺序一定到第一位,剩下的长度为(n-1)的字符串看作一个新的串 如:ab...

2018-04-09 09:25:41

阅读数:63

评论数:0

AOJ--开关灯

问题 吃完草莓以后,机房的小伙伴们要开始做些运动。在ACM实验室里有N盏灯编号为1到N,起初都是开着的,从第一盏灯开始,凡是编号是一的倍数的灯的开关都要被按一遍(亮的变成暗的,暗的变成亮的), 然后到第二盏灯,凡是编号是二的倍数的灯的开关都要被按一遍,一直到第N盏灯,凡是编号是N的倍数的灯都要...

2018-04-01 22:03:21

阅读数:88

评论数:0

ACM--AOJ计算GPA

问题 上学期面对繁重的课程和考试,TYF终于考完了。成绩出来之后,TYF想看一下GPA(Grade Point Average,平均成绩点数)是多少,之后他熟练的打开了教务处,看到绩点显示0.00,他丝毫没有感到吃惊,他知道教务处又出现问题了。之后TYF决定自己写一个程序来计算自己的GPA。想必...

2018-04-01 21:17:37

阅读数:72

评论数:0

ACM--减肥

问题描述 由于长期缺乏运动,小黑发现自己的身材臃肿了许多,于是他想健身,更准确地说是减肥。 小黑买来一块圆形的毯子,把它们分成三等分,分别标上A,B,C,称之为“跳舞毯”,他的运动方式是每次都从A开始跳,每次都可以任意跳到其他块,但最后必须跳回A,且不能原地跳.为达到减肥效果,小黑每天都会坚持...

2018-04-01 20:55:17

阅读数:142

评论数:0

ACM--西瓜理发

问题 某天,西瓜决心皈依勺林寺,于是来到安大门口的理发店,准备剃一个光头。 然而理发店有很多人排队,西瓜想知道他大概还需要排队排多久。 假设一位男生需要8分钟,一位女生需要12分钟。 程序输入说明 测试数据包括多组 每组数据包含一个字符串s,0<|s|&...

2018-03-30 20:10:55

阅读数:112

评论数:0

2018安徽大学计算机机试3--最短的步数

问题描述 输入两个整数n,m,( 0 < n,m<100000)每一次,第一个整数可以执行乘2,、减1、加1三种操 作的任意一种,求n到m至少要多少次这样的操作。 解决思路 每次可以进行三个操作的其中一个,问题可以转化成单源最短路径问题: ...

2018-03-30 09:45:51

阅读数:523

评论数:0

2018安徽大学计算机机试2--单调栈

问题描述 问题 定义一个单调栈:每次整数n入栈时,如果栈顶元素大于n,则栈顶元素出 栈,并且继续判断栈顶元素是否大于n,大于则出栈,重复操作,直到栈顶 元素不大于n,n入栈。入栈完毕。例如:栈中元素为2 3 7,如栈元素为6, 则7出栈,6入栈,最后结果为2 3 6; 输入输...

2018-03-30 09:41:00

阅读数:432

评论数:0

2018安徽大学计算机机试1--斐波那契数列

问题描述 给定一个函数: F(0)=0; F(1)=1; F(n)=F(n-1)+F(n-2),n>1 程序输入一个整数n,0 < n<100000,输入F(n)的值,结果对854562545取余。 解决思路 可以用递...

2018-03-30 09:36:19

阅读数:392

评论数:2

python基础--实现大数到任意进制的转换

问题 实现大数,远远超过python能表示的整数,比如有上百位整数,到2-16进制的转换. 解决思路 讲大数存在字符串,从大数的最高位开始,依次到最低位,每一位取出来转换成整数,对进制x进行整除和取余,将商保存在字符串中,将余数*10加上大数的下一位作为新的被除数,以此类推,直到大数取完...

2018-03-19 10:52:13

阅读数:563

评论数:3

python十分简单实现十进制到任意进制的转换

目的 输出一个十进制的数和需要转换的进制,可以实现转换进制。进制的范围是2-16 方法 方法非常简单,就是利用辗转相除发, 保存商和余数,知道商为0为止,再将余数反转。 用列表a=[0,1,2,3,4,5,6,7,8,9,’A’,’b’,’C’,’D’,’E’,’F’]储存转换之后的每...

2018-03-19 00:12:02

阅读数:7507

评论数:2

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