自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

姚光超的专栏

专注于语音识别和语音唤醒~

  • 博客(118)
  • 资源 (28)
  • 收藏
  • 关注

转载 数组统计分析

转载自:数组统计分析给定数组A,大小为n,数组元素为1到n的数字,不过有的数字出现了多次,有的数字没有出现。请给出算法和程序,统计哪些数字没有出现,哪些数字出现了多少次。能够在O(n)的时间复杂度,O(1)的空间复杂度要求下完成么?分析这个题目,是有一定技巧的。技巧是需要慢慢积累,待经验多了之后,可以灵感或者直觉,就产生了技巧。如果不知道技巧,那该怎么办呢?

2013-08-29 13:57:40 2962

原创 《编程之美》2.21 只考加法的面试题

网上存在很多对该问题的解答,但是很多解答都有错误,比较正确的是http://blog.csdn.net/lyso1/article/details/5399146,但是问题解法较为复杂,在此将从另一个思路对问题进行解答,很大程度简化了算法正确性的证明。------------------------------------------------------------------------

2013-08-25 13:58:39 7944 5

原创 linux知识汇总

1.     利用Ctrl+Alt+F1到Ctrl+Alt+F6在6个虚拟控制台之间切换,利用Ctrl+Alt+F7切换回图形界面。2.     使用who命令来判断谁在系统上及其登录方式。id命令用来显示用户信息和组信息。3.     cal命令列出当前月的日历。4.     ps命令用来列出在系统上运行的进程。没有参数的ps命令显示单个终端上其他的所有进程。ps aux命令显示所有

2013-08-04 22:39:19 1841

原创 C语言基础知识

1.       一个枚举数据类型的每个枚举常量都表示一个特定的值,如果不是隐式地由枚举值列表中位置所决定,就是显式地使用一个常量表达式来初始化。由位置决定时,初始值是0。枚举中不同的常量,可以有相同的值。2.       编译器隐式地将一个具有数组类型的表达式(不如数组名)转换成指向数组第一个元素的指针。只有在下面的情况下,数组表达式才不会被转换成指针:1)当数组是sizeof运算符的操作数

2013-08-03 23:33:41 2678

原创 java基础知识汇总

1.     类的访问控制权限共有两种:public和默认。默认级别的类只能被同一个包中的类看到,包外不可见。2.     类成员的访问权限共有四种:public,protected,private和默认。protected成员包内随便访问,包外继承才能访问。private类外不能访问,内部类可以访问。默认包内可以访问,包外不能访问。3.     final修饰变量的基本含义是,该变量一旦

2013-08-02 21:53:55 2981

原创 Hadoop集群运行JNI程序

要在Hadoop集群运行上运行JNI程序,首先要在单机上调试程序直到可以正确运行JNI程序,之后移植到Hadoop集群就是水到渠成的事情。Hadoop运行程序的方式是通过jar包,所以我们需要将所有的class文件打包成jar包。在打包的过程中,无需将动态链接库包含进去。在集群中运行程序之前,Hadoop会首先将jar包传递到所有的节点,然后启动运行。我们可以在这个阶段将动态链接库作为附件

2013-07-27 00:02:00 3955

原创 Linux下使用JNI的常见问题及解决方案

JNI是java和C/C++混合编程的接口,可以很方便地实现java调用C/C++语言。具体的使用方法,网上有很多教程,在此不做过多介绍。本博客只关注在使用JNI的过程中的常见问题。1.     生成头文件用命令:javah*.class这是错误的。运行上述命令会提示:java.lang.IllegalArgumentException: Not a valid class name:Se

2013-07-26 22:29:24 14304 3

原创 伪分布式环境下命令行正确运行hadoop示例wordcount

首先确保hadoop已经正确安装、配置以及运行。1.     首先将wordcount源代码从hadoop目录中拷贝出来。[root@cluster2 logs]# cp /usr/local/hadoop-1.1.2/src/examples/org/apache/hadoop/examples/WordCount.java ~/ygch/hadoop/因为在编译过程中需要将jave

2013-07-24 23:30:06 12382 1

原创 hadoop环境配置过程中可能遇到问题的解决方案

Failed to set setXIncludeAware(true) for parser遇到此问题一般是jar包冲突的问题。一种情况是我们向java的lib目录添加我们自己的jar包导致hadoop引用jar包的冲突。解决方案就是删除我们自己向系统添加的jar包,重新配置。将自己的jar包或者外部jar放入系统目录会在编译程序时带来方便,但是这不是一种好习惯,我们应该通过修改CLAS

2013-07-24 20:22:20 53794

原创 mpi中利用自定义归约操作实现merge

在归并排序中,很重要的一步是将两个排序数组合并成一个数组,这个操作叫merge。merge操作可以用来解决某些Top K问题。问题描述在哼唱搜索中,用户通过哼唱一个音乐片段去搜索与其相似的音乐。后台的实现主要有两个步骤:特征提取和特征匹配。特征提取是从原始波形音乐文件中提取最能代表音乐的特征。特征匹配就是利用提取的特征与特征库进行匹配,找到最相似的音乐。在实际情况中,特征库往往很大,目前商

2013-07-18 12:27:20 5815

原创 mpi中程序在集群中的分发

我们在开发mpi程序时,由于其是分布式程序,我们在单个节点上完成编码后,需要将代码拷贝到整个集群进行测试。集群之间的文件拷贝可以通过scp命令完成。但是scp命令是针对两个节点之间文件互传设计,为了将代码拷贝到所有的机器,我们需要多次调用scp命令。一个好的方法是将拷贝命令写成脚本,让其自动完成。       首次拷贝时,我们可以让scp拷贝整个工作目录到集群中,当项目较小时这种方法没有影响,

2013-07-17 21:03:56 4333

原创 mpi中的广播

MPI可以实现一对多的集合通信,最常用的是广播:某个进程将数据广播到所有其他进程,最终的结果就是每个进程都有一份广播的数据。MPICH中的广播函数是MPI_Bcast(void* buffer,intcount,MPI_Datatype datatype,int root, MPI_Comm comm)。该函数在使用过程中非常容易出错,在此我们通过具体实例来说明其使用方法。MPI_Bcas

2013-07-15 21:20:29 13387 1

原创 mpi和cuda混合编程的正确编译

针对大数据的计算,很多程序通过搭建mpi集群进行加速,并取得了很好的效果。算法内部的加速,当前的并行化趋势是利用GPU显卡进行算法加速。针对并行性非常好的算法,GPU加速效果将远大于集群带来的加速效果。所以,如果我们面临非常多的数据,针对数据的处理算法有具有很好的内部并行性,则我们可以将mpi和GPU结合,获得更大的加速比。       将mpi和GPU结合的产物就是GPU集群。它可以为我们带

2013-07-14 23:32:36 13109

原创 cuda中模板的使用

模板是C++的一个重要特征,它可以让我们简化代码,同时使代码更整洁。CUDA中也支持模板,这给我们编写cuda程序带来了方便。不过cuda4.0之前和之后使用模板的方法不一样,这给我们带来了少许困难。在cuda4.0之前,模板的使用和C++中无区别,使用非常方便,在此不做过多介绍。不过在cuda4.0之后,由于编译器的升级,导致之前的模板使用方法不再有效,我们需要重新设计代码。如果按照之前的方

2013-07-09 23:45:50 6753

原创 MPICH3环境配置

最新版的mpich简化了运行方式,不再提供mpd开头的命令,只需要一个mpiexec即可启动mpi运行环境,方便了mpi编程。源代码下载地址:http://www.mpich.org/downloads/。不过和之前的版本一样,在运行mpi程序时,首先要配置好系统环境。1.       安装mpich3从上述网址下载源代码后,解压,然后configure,最后make和make insta

2013-06-20 22:56:01 18775 3

原创 git使用说明

1.     创建git项目    使用git的第一步是创建一个git项目。这一步需要在github网站上完成,在网站中创建一个全新的repository。如果我们之前在本地完成一个项目,想要将该项目发布到github,则此时新建的repository不要有任何文件,即使是README这样的文件,然后我们可以按照如下流程完成创建:      a)       cd localproject

2013-06-11 20:17:36 5427 3

转载 数据的标准化

转载自:数据的标准化数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。  其中最典型的就是数据的归一化处理,即将数据统一映射到[0,1]区间上,常见的数据归一化的方法有:min-max标准化(Min-max

2013-04-06 14:54:40 1663

转载 Kafka设计理念浅

本文转载自:Kafka设计理念浅本文将从以下两个方面去尝试讲解Kafka的设计理念,主要参考文献在这里:Kafka设计背景及原因Kafka的设计特色Kafka设计背景及原因Kafka最初被LinkedIn设计来处理活动流数据(activity stream data)和系统处理数据(operaitonal data)。活动流数据是指像page vie

2013-03-30 15:56:00 3681

转载 NoSQL 中的 CAP 原理

转载自:NoSQL 中的 CAP 原理我们知道 CAP 原来是任何存储无法规避的定律,任何存储设备都无法在一致性(C),可用性(A)和分区可容忍性(P)三者上都做得非常好。这就是所谓的CAP定律。这里推荐的这篇文章,从CAP原理讲起,然后将目前的各大 NoSQL 产品进行了分类,如下:按功能分类:Relational 关系性数据库,这里就不多说了,像我们常用的

2013-03-25 13:48:17 1721

转载 如何“打败”CAP定理

转载自:如何“打败”CAP定理CAP定理是数据系统设计的基本理论,目前几乎所有的数据系统的设计都遵循了这个定理。但CAP定理给目前的数据系统带来了许多复杂的、不可控的问题,使得数据系统的设计越来越复杂。Twitter首席工程师、Storm的作者Nathan Marz在本文中通过避开CAP定理带来的诸多复杂问题,展示了一个不同于以往的数据系统设计方案,给我们的数据系统设计带来了全新的思路

2013-03-25 13:41:07 1768

转载 Storm使用到的相关技术总结

转载自:Storm使用到的相关技术总结Storm作为一个开源的分布式实时流计算框架,其内部实现使用了一些常用的技术,这里是对这些技术及其在Storm中作用的概括介绍。以此为基础,后续再深入了解Storm的内部实现细节。1. Zookeeper集群Zookeeper是一个针对大型分布式系统的可靠协调服务系统,其采用类似Unix文件系统树形层次结构的数据模型(如:/zoo/a,

2013-03-24 16:30:54 2083

转载 使用 Twitter Storm 处理实时的大数据

转载自:使用 Twitter Storm 处理实时的大数据简介: Storm 是一个开源的、大数据处理系统,与其他系统不同,它旨在用于分布式实时处理且与语言无关。了解 Twitter Storm、它的架构,以及批处理和流式处理解决方案的发展形势。Hadoop(大数据分析领域无可争辩的王者)专注于批处理。这种模型对许多情形(比如为网页建立索引)已经足够,但还存在其他一些使用模型,它们

2013-03-24 15:22:07 2464

转载 Understanding the parallelism of a Storm topology

转载自:storm官方文档Storm distinguishes between the following three main entities that are used to actually run a topology in a Storm cluster:Worker processesExecutors (threads)TasksH

2013-03-24 14:54:42 1630

转载 storm入门教程 第四章 消息的可靠处理

转载自:量子恒道官方博客4.1 简介storm可以确保spout发送出来的每个消息都会被完整的处理。本章将会描述storm体系是如何达到这个目标的,并将会详述开发者应该如何使用storm的这些机制来实现数据的可靠处理。4.2 理解消息被完整处理一个消息(tuple)从spout发送出来,可能会导致成百上千的消息基于此消息被创建。我们来思考一下流式

2013-03-24 14:39:43 7684 1

转载 Storm入门教程 第二章 构建Topology

转载自:量子恒道官方博客2.1 Storm基本概念在运行一个Storm任务之前,需要了解一些概念:TopologiesStreamsSpoutsBoltsStream groupingsReliabilityTasksWorkersConfigurationStorm集群和Hadoop集群表面上看很类似。但是Hadoop上运行的是MapReduce jobs

2013-03-24 14:26:12 16258

转载 质数还是合数?

转载自:善科问答

2013-01-27 14:16:33 1294

原创 关于CUDA中__threadfence的理解

__threadfence函数是memory fence函数,用来保证线程间数据通信的可靠性。与同步函数不同,memory fence不能保证所有线程运行到同一位置,只保证执行memory fence函数的线程生产的数据能够安全地被其他线程消费。(1)__threadfence:一个线程调用__threadfence后,该线程在该语句前对全局存储器或共享存储器的访问已经全部完成,执行结果对

2013-01-15 21:20:04 15379 7

转载 Amdahl’s law (阿姆达尔定律)的演化和思考

本文转自:Amdahl’s law (阿姆达尔定律)的演化和思考    G.M.Amdahl在1967年提出了Amdahl’s law,针对并行处理的scalability给出了一个模型,指出使用并行处理的提速由问题的可并行的部分所决定。这个模型为并行计算系统的设计者提供了指导。其形式如下:f为问题中可被并行处理的部分的比例,m为并行处理机的数量,Speedup为并行后相比串行时的

2013-01-10 13:30:54 9556

转载 一个关于极限的方程

转载自:善科问答求解方程:  解法一:   原式可化为: 2=x12+14+18+⋯ ->⟹2=x 解法二:  两边平方4=xxxxx⋯−−−−√−−−−−−√−−−−−−−−−√−−−−−−−−−−−−√  因为

2012-12-24 18:44:50 1714

转载 2012年北约自主招生的一道数学好题

转载自:善科问答2012年北约自主招生数学第7题:设点A,B,C分别在边长为1的正三角形三边上,求AB2+BC2+CA2的最小值。解法一:解法二:由于是等边三角形,则解法三:       在图中把正三角形的边PM关于PN,MN分别作镜面反射。可以得到A'和A''的关系PA'+MA''=P

2012-12-10 13:27:12 1497

原创 Linux下读取位图的注意事项

在Linux下读取位图遇到的问题,很好地体现了Linux与Windows操作系统的不同。按理说位图格式与操作系统无关,读取也应该无关,实际上在位图读到内存中时已经不同。下面主要介绍自己在Linux下操作位图遇到的问题。(一)、位图结构    位图一开始是两个结构体,包括位图的详细信息,是读取后面数据的关键。所以读取位图首先要正确读取这两个结构体:BITMAPFILEHEADER和BITMA

2012-11-30 15:09:33 3933

原创 CUDA编程常见问题

最近初试cuda编程,作为一个新手,遇到了各种各样的问题,然后花费了大量时间解决这些匪夷所思的问题。为了避免后来人重蹈覆辙,现把自己遇到的问题总结如下。(一)、cudaMalloc     初次使用该函数,感觉没有什么困难,和c语言的malloc类似。但是在具体应用中却出了一个很难找的错误,花费了很多时间。该函数使用是需要注意的就是,它分配的内存空间单位是字节,所以需要我们在使用时用siz

2012-11-05 10:55:07 19480 3

原创 vim常用操作

vim是Linux下编程的利器,用好vim,它的功能可以强大到比肩IDE。根据自己的使用情况,下面列出了比较好用的一些vim命令:操作模式作用/word命令查找wordn命令找到要查找的内容后,往下依次遍历N命令反向遍历要查找的内容ctrl+]命令查找一个函数或变量的最初定义位置

2012-10-18 15:46:25 1775

原创 Linux下常用命令与使用技巧

1. head命令head命令用来显示文件开头的几行。其还有一个很好的用途是用来合并文件,与cat然后重定向相比它会在合并的文件中每个文件开始包含合并文件的文件名。例:head -99999 ReadMe* >/tmp/merge_ReadMe.txt。含义是:将当前目录下以ReadMe开头的多个文件显示前99999行(其实就是显示整个文件),并重定向到tmp目录下的merge_ReadMe.

2012-10-13 22:31:35 1725

原创 2012百度之星初赛第一场B题

小弟新手,只尝试了B题,还各种bug。改过之后的代码是:#include long long pow(long long x){ long long a=10; while(x/a!=0) { a*=10; } return a;}int main(){ int n,i,s=0; long long x,a,b,p; scanf("%d",&n); for

2012-06-02 17:04:40 1785

原创 由swap看变量在内存中的分配

在排序问题中,我们必不可少的会用到交换操作。针对不同的语言,处理方式有所不同:或者单独写一个swap函数,或者直接在排序函数中实现交换操作。采用swap函数大多数人肯定会遇到不能交换的问题,其中的原理大家也应该都很清楚:swap函数交换的是局部变量,话虽如此,但具体的机制其实远不

2010-10-16 01:40:00 2218 1

原创 嵌入式汇编

本文叙述了自己在windows环境和Linux环境下写嵌入式汇编的一些经验,希望对大家有所帮助。

2010-08-24 11:18:00 4081 1

原创 JNI操作的详细步骤

本文详述了自己在做项目时关于JNI遇到的很多问题,并给出了解决方法,希望对大家有所帮助。

2010-07-20 10:17:00 3683

基于递归分割的迷宫生成算法与自动寻路

本项目实现了一个基于递归分割迷宫和自动寻路的java可视化,相应博客地址为:http://blog.csdn.net/yutianzuijin/article/details/52078340

2016-08-01

java记事本

本代码用java实现了一个简单的记事本程序,特别的包括用kmp算法实现的查找替换和双向链表实现的查找位置保存。

2015-07-26

WAP 2013年笔试题(区间相关)

本资源是WAP公司2013年的笔试题,涉及的题目是关于区间调度的。

2015-04-18

开根号的几种算法实现

本代码实现了多种开根号算法,方便大家对比。

2014-10-19

基于Access数据库的matlab学生成绩管理系统

本项目是中国地质大学matlab课程的大作业,利用matlab实现一个学生成绩管理系统,本人利用access数据库存储学生成绩,然后实现了matlab和access的交互。

2014-06-29

基于隐马尔可夫模型的有监督词性标注

本项目采用java实现了一个基于隐马尔可夫模型的中文句子词性标注系统,并附有详细的说明文档,对于想了解HMM和词性标注的人都会有很大帮助。

2014-06-22

哼唱检索的并行化方法研究与实现

本论文是自己的硕士毕业论文,方向是哼唱检索的并行化。主要包括:多声部音乐的基频序列提取及其GPU加速,特征匹配算法DTW的GPU加速和MPI分布式计算。对从事哼唱检索和GPU加速的人有较大帮助。

2014-03-18

基于XMPP协议的Qt聊天程序

本资源是自己写的利用XMPP协议进行聊天的软件,界面实现采用Qt,功能和QQ很类似,对学习XMPP协议和Qt很有帮助。

2013-08-27

vim高亮插件

执行下述命令安装vim插件: # cp hidden.vimrc ~/.vimrc # cp -r hidden.vim ~/.vim # sudo apt-get install cscope # sudo apt-get install exuberant-ctags # sudo cp find_tagstuff /usr/bin/ # sudo chmod 777 /usr/bin/find_tagstuff

2013-06-20

Pro Git教程

本文档是学习Git的首选教程,详细介绍了Git的使用。

2013-06-11

storm资源分享

本压缩包包括两个资源:getting started with storm和自己整理的storm介绍。

2013-03-24

matlab下链表的实现方法

该程序实现了在matlab下,用实现类的方式实现了一个简单的单向链表,可以方便大家参考扩展。

2012-09-03

marsyas工作过程

本文档是自己阅读marsyas之后写的一个关于marsyas示例程序HelloWorld的运行过程分析,对想使用开源项目marsyas的人会有比较大的帮助。

2012-07-09

基于PCA(主成分分析)的人脸识别

本matlab程序实现了基于PCA的人脸识别,并提供了相应的论文和测试数据集,并给出了测试结果。

2012-06-03

k均值图像分割

本程序用matlab实现了基于k均值算法的图像分割,效果很好。

2012-03-12

c语言快速排序

用c语言实现的一个快速排序。数组用随机数生成,方便大家学习。

2012-03-12

TCP实现windows和linux之间文件传输

本项目利用tcp协议在windows和linux之间传递文件,windows下实现服务器端,linux下实现客户端。此程序可以方便用户在windows和linux之间快速的传递文件,在局域网下传输速度可以达到8MB/s。

2012-03-02

高效的霍夫曼文本压缩

程序实现了c语言下霍夫曼文本压缩,测试的结果是:118M的文本压缩需要7s,解压需要4s。程序采用wchar读取字符,所以可以识别汉字。字符的存储采用散列,既考虑了速度,又兼顾了空间。压缩用最大堆来构造霍夫曼树。解压用最小堆重构霍夫曼树。较之以前自己用java实现的版本速度有很大提高。

2011-10-31

c语言动态数组的实现方法

该项目利用c语言的malloc函数实现了一维和二维动态数组的创建,并且二维数组采用了两种方式。该项目对了解程序的内存分配具有很好的益处。

2011-03-01

基于最短路的GPS地图导航

本程序用java实现了一个简单的地图导航程序。通过导入部分济南市地图,然后采用dijsktra算法计算用户任意指定两点的最短路,并用图形界面显示出来。

2011-02-28

OpenGl实现太阳系

利用opengl实现了太阳系中球体的运行,并且利用贴图技术和光照技术使场景更加逼真。此外还可以利用键盘控制视角,修改转速等。

2010-12-20

PL0 集成开发环境

该程序是完全按照Eclipse开发环境为PL0语言设计的,实现了基本的文本操作:复制、粘贴、剪切和查找替换,还可以在新建文件和删除文件,还可以打印。 除了这些基本功能外,当然实现了词法、语法和运行PL0程序。 10分值不值下下来看看,这是山东大学的编译原理实验。

2010-07-12

OpenGL凸包程序

此程序用C编写,利用OpenGL实现图形界面,实现了二维坐标系下的凸包算法,可以动态添加顶点,还可以自动生成。

2010-03-27

PL0递归下降编译程序

此程序是山东大学编译原理实验,完成了对Pl0程序的词法分析、语法分析与解释执行。程序采用了递归下降分析法,实现了对注释的添加,而且扩展了else语句,具有良好的程序结构。

2010-03-12

用霍夫曼树实现的文本压缩*(升级版)

此程序是自己原来程序的升级版本,压缩文件的大小从原来的几十K提高到可以压缩上M的文本文件。同时添加了进度条,使界面更加友好。可解压文件的大小也有所提高,可以解压近百K的文件。

2010-03-05

用Java写的学生管理系统

自己写的感觉很完善的学生管理系统,实现了教师、学生基本信息录入、选课、成绩管理等功能。

2009-09-23

用霍夫曼树实现的文本压缩

通过统计文本文档中的字符信息,构造霍夫曼树,之后进行压缩。对于几十K的文档效果不错。

2009-07-07

GUI的Java课表排序

用拓扑排序实现的一个简单课表排序界面。用户输入课程数目和课程以及它们之间的优先级,则可显示一个最优的排序结果。

2009-07-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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