摘要: http://www.cnblogs.com/heaad/archive/2011/03/07/1976443.html本文主要内容包括: (1) 介绍神经网络基本原理,(2) AForge.NET实现前向神经网络的方法,(3) Matlab实现前向神经网络的方法 。第0节、引例 本文以Fisher的Iris数据集作为神经网络程序的测试数据集。Iris数据集可以在http://en.wikipedia.org/wiki/Iris_flower_data_set 找到。这里简要介绍一下Iris数据集:有一批Iris花,已知这批Iris花可分为3个品种,现需要对其进行分类。不同品种的Iris花的花 阅读全文
posted @ 2013-06-03 09:20 hark.perfe 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 一、 线程池的原理:线程池,究竟是怎么一回事?其实线程池的原理很简单,类似于操作系统中的缓冲区的概念,它的流程如下:先启动若干数量的线程,并让这些线程都处于睡眠状态,当客户端有一个新请求时,就会唤醒线程池中的某一个睡眠线程,让它来处理客户端的这个请求,当处理完这个请求后,线程又处于睡眠状态。可能你也许会问:为什么要搞得这么麻烦,如果每当客户端有新的请求时,我就创建一个新的线程不就完了?这也许是个不错的方法,因为它能使得你编写代码相对容易一些,但你却忽略了一个重要的问题——性能!就拿我所在的单位来说,我的单位是一个省级数据大集中的银行网络中心,高峰期每秒的客户端请求并发数超过100,如果为每个客 阅读全文
posted @ 2013-06-03 01:03 hark.perfe 阅读(298) 评论(0) 推荐(0) 编辑
摘要: errno!=EINTR注意read()如果读到数据为0,那么就表示文件结束了,如果在读的过程中遇到了中断那么会返回-1,同时置errno为EINTR。因此判断read的条件:如果read返回<=0如果==0表示文件结束,处理如果<0&&errno==EINTR表示中断,处理否则,出错但是write()如果写入的数据为0,那么就表示出错,也就是无法写入了,而如果在写的过程中遇到了中断,那么write()会返回-1,同时置errno为EINTR。因此判断write是否成功时,条件是write返回的结果是否<=0if<=0{if<0{iferrno== 阅读全文
posted @ 2013-06-02 17:37 hark.perfe 阅读(650) 评论(0) 推荐(1) 编辑
摘要: GETSOCKOPT(2) Linux Programmer's Manual GETSOCKOPT(2)NAME getsockopt, setsockopt - get and set options on socketsSYNOPSIS #include <sys/types.h> /* See NOTES */ #include <s... 阅读全文
posted @ 2013-06-02 13:13 hark.perfe 阅读(256) 评论(0) 推荐(0) 编辑
摘要: GETSOCKOPT(2) Linux Programmer's Manual GETSOCKOPT(2)NAME getsockopt, setsockopt - get and set options on socketsSYNOPSIS #include <sys/types.h> /* See NOTES */ #include <sys/socket.h> int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen); int setsockopt 阅读全文
posted @ 2013-06-02 03:35 hark.perfe 阅读(249) 评论(0) 推荐(0) 编辑
摘要: #include <sys/socket.h> /*connect,send,recv,setsockopt等 */#include <sys/types.h>#include <sys/stat.h>#include <netinet/in.h> /* sockaddr_in, "man 7 ip" ,htons*/#include <poll.h> /*poll,pollfd*/#include <arpa/inet.h> /*inet_addr,inet_aton*/#include <un 阅读全文
posted @ 2013-06-02 01:38 hark.perfe 阅读(157) 评论(0) 推荐(0) 编辑
摘要: /****************************************************************************************************************************************************/#include <stdlib.h>#include <sys/types.h>#include <sys/socket.h>#include <sys/stat.h>#include <netinet/in.h>#include < 阅读全文
posted @ 2013-06-02 01:10 hark.perfe 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 什么时候需要创建线程池呢?简单的说,如果一个应用需要频繁的创建和销毁线程,而任务执行的时间又非常短,这样线程创建和销毁的带来的开销就不容忽视,这时也是线程池该出场的机会了。如果线程创建和销毁时间相比任务执行时间可以忽略不计,则没有必要使用线程池了。 下面是Linux系统下用C语言创建的一个线程池。线程池会维护一个任务链表(每个CThread_worker结构就是一个任务)。 pool_init()函数预先创建好max_thread_num个线程,每个线程执thread_routine ()函数。该函数中while (pool->cur_queue_size == 0){ pthread_ 阅读全文
posted @ 2013-06-02 01:09 hark.perfe 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 位与运算:#include <stdio.h>void main (){ printf("0 & 0 is %d\n", 0 & 0); printf("0 & 1 is %d\n", 0 & 1); printf("1 & 1 is %d\n", 1 & 1); printf("1 & 2 is %d\n", 1 & 2); printf("15 & 127 is %d\n", 15 & 127);0 阅读全文
posted @ 2013-06-01 23:06 hark.perfe 阅读(155) 评论(0) 推荐(0) 编辑
摘要: C,pasted just now:123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 #include <stdio.h> #include <stdlib.h> typedef struct node 阅读全文
posted @ 2013-06-01 22:09 hark.perfe 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 环境1. 安装增强功能包(Guest Additions)安装好Ubuntu 9.10后,运行Ubuntu并登录。然后在VirtualBox的菜单里选择"设备(Devices)" -> "安装增强功能包(Install Guest Additions)"。 你会发现在Ubuntu桌面上多出一个光盘图标,这张光盘默认被自动加载到了文件夹/media/cdom0。进入命令行终端,输入: cd /media/cdom0 sudo ./VboxLinuxAdditions.run 开始安装工具包。安装完毕后会提示要重启Ubuntu。 2. 设置共享文件夹 阅读全文
posted @ 2013-05-08 16:18 hark.perfe 阅读(572) 评论(0) 推荐(0) 编辑
摘要: gcc and g++现在是gnu中最主要和最流行的c & c++编译器 .gcc/g++在执行编译工作的时候,总共需要以下几步:1.预处理,生成.i的文件[预处理器cpp]2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs]3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as]4.连接目标代码,生成可执行程序[链接器ld]gcc and g++现在是gnu中最主要和最流行的c & c++编译器 .gcc/g++在执行编译工作的时候,总共需要以下几步:1.预处理,生成.i的文件[预处理器cpp]2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器e 阅读全文
posted @ 2013-05-08 16:10 hark.perfe 阅读(410) 评论(0) 推荐(0) 编辑
摘要: 1 简介 在UNIX系统中,创建和修改配置文件、shell脚本、初始化文件、编写程序都离不开VI。 1 vi属于两个主要的UNIX规范:POSIX和单一UNIX规范。 2 vi编辑器由Bill Joy于1976年创建。 3 vi是一种面向屏幕的编辑器。 4 vi来源于另一个编辑器ex。 5 vim是vi的增强版。 2 使用帮助 学习vi,学会使用联机手册或帮助命令是非常重要的。Unix有两个最重要的文档资料系统:Unix手册和Info(GNU项目的官方文档资料系统)。 常用命令: 1 man vi 2 vi --help 3 info vi 对于较长的说明页,可使用分页程序分页显示。常用的分页 阅读全文
posted @ 2013-04-29 15:30 hark.perfe 阅读(604) 评论(0) 推荐(0) 编辑
摘要: 位运算 在很多系统程序中常要求在位(bit)一级进行运算或处理。C语言提供了位运算的功能, 这使得C语言也能像汇编语言一样用来编写系统程序。一、位运算符C语言提供了六种位运算符:& 按位与| 按位或^ 按位异或~ 取反<< 左移>> 右移1. 按位与运算 按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。例如:9&5可写算式如下: 00001001 (9的二进制补码)&00000101 (5的二进制补码) 000 阅读全文
posted @ 2012-02-15 13:59 hark.perfe 阅读(161) 评论(0) 推荐(0) 编辑
摘要: makefile 介绍make命令执行时,需要一个 makefile 文件,以告诉make命令需要怎么样的去编译和链接程序。首先,我们用一个示例来说明makefile的书写规则。以便给大家一个感性认识。这个示例来源于gnu的make使用手册,在这个示例中,我们的工程有8个c文件,和3个头文件,我们要写一个makefile来告诉make命令如何编译和链接这几个文件。我们的规则是:1)如果这个工程没有编译过,那么我们的所有c文件都要编译并被链接。2)如果这个工程的某几个c文件被修改,那么我们只编译被修改的c文件,并链接目标程序。3)如果这个工程的头文件被改变了,那么我们需要编译引用了这几个头文件的 阅读全文
posted @ 2012-02-14 13:04 hark.perfe 阅读(240) 评论(0) 推荐(0) 编辑