K-MEANS算法:
k-means 算法接受输入量 k ;然后将n个数据对象划分为 k个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。聚类相似度是利用各聚类中对象的均值所获得一个“中心对象”(引力中心)来进行计算的。
k-means 算法的工作过程说明如下:首先从n个数据对象任意选择 k 个对象作为初始聚类中心;而对于所剩下其它对象,则根据它们与这些聚类中心的相似度(距离),分别将它们分配给与其最相似的(聚类中心所代表的)聚类;然后再计算每个所获新聚类的聚类中心(该聚类中所有对象的均值);不断重复这一过程直到标准测度函数开始收敛为止...
今天写BP模型的时候,失败了。日哦,失败了还不知道问什么了,一种抑郁在心头啊。
看样子,以后不到万不得已,不能使用这东西了。
还要继续学习啊,这东西是在太高级了。
论文终于投出去了,哇哈哈,老师说可以投了我就把他给投出去了,结果就不知道了哈~~~~
不过还是很高兴的就是了~~~中了,就是中文的核心期刊,能中EI更好,不行也可以哈,不想了,本来就很P的东西。
要感谢佘堃老师一直帮我改论文,我在他的帮助下学到了很多东西。
还要感谢大亮的英文,weide和jianyong的图图,感谢他们了。
第一篇论文以洋洋的半年时间终于写完了,觉得好有成就感洛。
昨天是学校创新项目的答辩的日子,说实话,在最开始准备最后答辩的时候我是没有什么信心的。主要是由于最神经网络的部分困难重重。在最后的时候我们几乎放弃,给出完整的设计方案的想法,最后还是在weide大牛的坚持下,通过不断的努力最终完成了成品。凝结着我们辛勤汗水的作品就这么诞生了。从8月26日开始正式启动这个项目到现在真正的完成了这个项目大概一共花了漫漫的三个多月的时间,回想这三个月的时间里面,我和weide大牛一起经历和很多风风雨雨,但是我们都一步一步的克服了困难。也许是困难太多了,我都没办法想起他多的困难来。现在总结起来最大的困难还是自己,只要自己放弃了,就真的没办法克服困难了。
...
今天晚上去看ai.snake的预赛的时候,输掉了。打败了一个lxh和hhb大牛的蛇蛇。但是被一年级一个小弟弟给打败了,主要的原因还是因为自己的蛇有一个小bug,但是调试的时候就发现了,一直没找到原因。因为发生的概率比较的小,在没时间的情况下也就只好交了。比赛的时候和这个后辈一起比赛的时候就3次都出现了这个bug,实在是不好意思说啊~~
哎,以后发现bug了,一定要调试了,不然还会出这种问题的。这下记住了~~~
终于上来了,太不容易了很久都没上来成了,前段时间,这地方出了什么问题啊?
反正是上来了,发帖庆祝下
很久没有发技术类的blog了,不好意思现在做的事情要先发论文所以,blog就不能写了。
自从离开了ACM队后,就接一个学校的创新项目,开始的时候还是很没把握能够完成这项艰巨的任务但是很幸运的是,和我一起做这些项目的都是ACM队退下来的老队员,比较有编程的经验。记得是10.9号吧,学校组织对项目的中期答辩。说实话,这次我是真的看到uestc计算机学院本科生的实力。在这次答辩中,我看到了很多很不错的作品和想法,比如“基于形态学的指纹识别”,“人脸识别”,还有我们的“神经网络车牌识别”。另外还有一个很有想法并且发现了商机的搜索引擎,不过由于有商机所以(呵呵,不能说哈)。
...
今天,在花了很多时间终于进了张亚勤博士的讲座,不出意料的来了接近四千人左右,全校出动一半。
张亚勤博士给我们一个最新的微软的产业观、产品观、人才观和技术观。这一切都给我很大的触动。打破了以往对微软缺乏技术和技术储备的传统观点。并展现了微软的在整个未来几十年中的野心。展示了一个世界最大财力团体对技术对追求和对人类生活领导力的追求。
经过几十年的努力,微软努力摆脱了缺少技术软实力的传统印象,已很诚恳的太度对待自己的技术劣势和不足,并加大投入吸引人才和研发产品。
然而,最触动我的是微软对人类生活领导力的追求,其野心勃勃的想进入人类生活的方方面面的想法,让我真正的感...
实验一 Matlab语言、数字图象基本操作
一、实验目的1、复习MATLAB语言的基本用法;2、掌握MATLAB语言中图象数据与信息的读取方法;3、掌握在MATLAB中绘制灰度直方图的方法,了解灰度直方图的均衡化的方法。二、实验原理 MATLAB是集数值计算,符号运算及图形处理等强大功能于一体的科学计算语言。作为强大的科学计算平台,它几乎能够满足所有的计算需求。MATLAB软件具有很强的开放性和适用性。在保持内核不变的情况下,MATLAB可以针对不同的应用学科推出相应的工具箱(toolbox)。目前,MATLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、...
void spfa(){int index,i;while(!Q.empty()){index=Q.front();Q.pop();for(i=0;i<edge[index].size();i++){if(dist[edge[index][i].id]<dist[index]+edge[index][i].fa){ dist[edge[index][i].id]=dist[index]+edge[index][i].fa;//if(index!=mm)//mark[index]=0;flag[edge[index][i].id]++;if(flag[edge[index][i].id]>...
黑书 p116页上有详细的分析
代码
如下:
#include <iostream>
#include <math.h>
using namespace std;
int grid[8][8];
int d[16][9][9][9][9];
int sm[9][9];
int const INF=10000000;
int n;
int sum(int i,int j,int s,int t)
{
return sm[s][t]-sm[i][t]-sm[s][j]+sm[i][j];
}
int comp(int a,int b,int c)
{
...
着道题看起来是一个三维的背包问题,但是注意一个条件,就是每个组件只能放在地x到第x+w的位子上所以这时问题就可以简化复杂度,即只对第i个组件在第x位置上时的价值为j时的f最大值求解。
方程为
f[i][L][C]=max{f[i-1][L][C],f[i-1][L-w][C-c]+F[i]且L-w=x};
还要注意个地方就是dp的顺序,x越小越i值越小
#include <iostream>
#include <algorithm>
using namespace std;
int l,n,b;
//int x,w,f,c;
int F[1001][1...
1.先作出这个数的常规意义下的所有因子,再验证这些因子是否满足特定的素因子的条件.
2.用线形筛法筛出可能的素因子,hash或者二分查找.
#include <iostream>#include <algorithm>using namespace std;
int a[300001];int ans[60000];void prime(int n){ a[0]=1; a[1]=1; for(int i=2;i*i<=n;i++) { if(a[i]==0&&(i%7==1||i%7==6)) { for(int j=i*i;j<=n;j+...
这道题是最长上升序列。
由于给出的数据量过大,不能直接使用dp的方法来去最长升序,因为这样的时间为0(n^2)
下面我们考虑如下的情况:
对于第i个数来说他是否是1……i的最长上升序列的元素,就是在1……i-1中的最长上升序列最后一个值比f[i]小,那么f[i]元素就为1……i上的最长上升序列的元素。
如过不存在1……i-1的最长上升序列满足上述情况时,我们不能直接认为i就1……n上的最长升序列。这是我们可以这样的假设,假设f[i]是1……n的最长生序列的元素。那么f[i]在1……n的最长升序列的位置应该在1……i-1的最长生序列中比f[i]小的最大的元素...
01背包问题;
有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。
这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。
用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。则其状态转移方程便是:
F[i][v]=max{f[i-1][v],f[i][v-c[i]]+w[i]};f[i-1][v-c[i]]+w[i]表示在第i-1个背包在v-c[i]的容量下的价值+第i件物品的价钱。
在背包问题中,时间为O(NV)没办法优化,但是在空间上是可以优化的。可以...
我在星期六的比赛当中因为贴代码被剔除了acm校队,如果没有这个错误我也许还能和他们一起去参加比赛,奋斗了两年的事业就这样被一个错误毁掉了。我没有听从其他人的建议去找lxh求情。也许我是为了这个团队好吧,我不能因为自己的原因就破坏这个刚刚有所希望的团队,我只能退出。我是爱她的……我为她付出了两年的时光。看着这个团队由一个没有人知道,没有学校支持的小摊子一天一天的壮大起来,到今天能够有这么多的新鲜的血液注入进来。这一切都那么的美好。但是我没办法像我的前辈一样带着自豪和无上的光荣离开。我只是被处罚的一个小脚色,甚至没有期望能够得到他们的原谅。
如果没有这个错误,几个月后我都和czj和...
dP+高精度
c[i]=c[i-1]+2*[i-2];
这个最优的东西我是很难自己想到的,我是看报告过的。
这个转移方程,是在太痛苦了。
#include <iostream>using namespace std;int c[250][100]={0};void high_int(int m,int n,int k){ int i, index=0; for(i=99;i&gt;=0;i--) { c[m][i]=(c[n][i]+c[k][i]+c[k][i]+index)%10; index=(c[n][i]+c[k][i]+c[k][i...
1.先用筛法做出一个素数组。
2.求得prime factors and add the digit of each prime.
3.add the digit of the given number.
4.compare the two sum.
#include <iostream>using namespace std;int prm[100000];int nn;long s_num;int prime(int a[],int n) { int i,j,k,x,num,*b; n++; ...
dfs
要注意的问题就是字典序。
其实就是从A1开始,
先搜索左边和上面的点。
注意要回溯
#include <iostream>using namespace std;int m,n;int sum;int count;typedef struct tr{ int x; int y;}TR;TR fo[27][27];void init(){ for(int i=0;i<=m;i++) for(int j=0;j&lt;=n;j++) { fo[i][j].x=-1; fo[i][j].y=-1; } sum=m*n; cou...
首先,我认为他是邪恶的,有一组邪恶的数据,害我wa了很多次。
方法就是使用贪心+bfs来实现的。
主要是要先把度数的点搜索之后在去搜索其他点。
这题花了我一晚上,几下来的时候都快两点了。
#include <iostream>#include <queue>using namespace std;const int maxn=210;typedef struct nn{ bool u; bool d; bool l; bool r; bool index; int num; bool ur; bool dr; bool lr; bool rr; }N...