- 博客(42)
- 收藏
- 关注
原创 网站导航
一、C/C++/Qt1. 酷勤网 http://www.kuqin.com/2. code project http://www.codeproject.com/3. 看雪学院 http://www.pediy.com/4. 大富翁编程论坛 http://www.delphibbs.com/5. google code http://code.google.com/intl/z
2012-12-30 13:33:16 851 1
原创 最优化——线搜索matlab程序
function [alpha, funcN, exitflag]=lines(funct, rho, l, u, alpha_0, f, gd, x, d, varargin)alpha = alpha_0;funcN = 0;i = 0; imax = 30;while i fn = feval(funct, x + alpha*d, varargin{:});
2012-12-31 15:58:21 4114 1
原创 最优化——FR共轭梯度法matlab程序
% cg.mfunction [x, output] = cg(fun, dfun, x0)% fun: character variable, the name of function computing objective function% dfun: character variable, the name of function computing the gradient
2012-12-31 15:57:42 9806
原创 最优化——拟牛顿方法matlab程序
% BFGSfunction [x, output] = bfgs(fun, dfun, x0, varargin)% Step 1: initializationepsi = 1.0e-6;k = 0;funcN = 0;rho = 0.01; l = 0.15; u = 0.85;x = x0;f = feval(fun, x, varargin{:});f
2012-12-31 15:57:04 15928 7
原创 1+1到底2不2?
由于面试被人告知要多了解些算法知识,最近学习一点算法知识,只是皮毛。整体趋于无穷大,部分趋于无穷小。按照“无有即无穷,无穷即无有”的哲学(参考《算法之道》),因此其于0无差别,也证明是可以相互转化的,在转化过程中,我们要找到“守恒”条件,处理好细节问题,实现整体。归纳之整体到部分的分析过程,再到部分到整体的实现过程。下面:动态规划和图搜索(1)动态规划将待求解问题分解成若干子问题;
2012-12-31 15:54:30 425
原创 哈密顿回路-相异数字序列问题
要满足两个条件: 1.封闭的环 2.是一个连通图,且图中任意两点可达 经过图(有向图或无向图)中所有顶点一次且仅一次的通路称为哈密顿通路。 经过图中所有顶点一次且仅一次的回路称为哈密顿回路。 具有哈密顿回路的图称为哈密顿图,具有哈密顿通路但不具有哈密顿回路的图称为半哈密顿图。 平凡图是哈密顿图。问题描述给你一个整数m,找出这样一个长为2^
2012-12-31 15:50:32 859
原创 十进制与二进制
二进制是计算技术中广泛采用的一种数制,是18世纪德国伟大的数理哲学家莱布尼茨首先发现的,但也有说是咱炎黄老祖宗发现的,在1697到1702年间,他莱布尼茨跟一位在中国的传道士P·J·伯维特经常通信.通过伯维特,莱布尼兹学习了《易经》的六线形,后者与他的二进制系统紧密关联.他注意到,如果把每个断开的线段作为0,而未断开的线段作为1,则六线形就呈示为二进制数.虽然莱布尼兹和伯维特都感觉中国人在《易经》
2012-12-31 15:48:52 365
原创 计算几何学概述
1.基本知识(1)线段两端点P (x1, y1),Q(x2, y2),线段上任意一点表示为:x = λx1 + (1-λ)x2y = λy1 + (1-λ)y20 与原点O结合起来便有矢量OP和OQ,得到PQ。(2)矢量加减法P+Q= (x1+x2, y1+y2) 满足交换律P+Q=Q+PP-Q= (x1-x2, y1-y2) P-Q = -(Q-P)
2012-12-31 15:47:40 510
原创 凸包求法
#include #include using namespace std;struct POINT { int x, y; int flag; // 表示是否在连线内部,在为0};POINT list[500], pk;int stack[500], top, k, rightnum;void swap(POINT &a, POINT &b){ POINT t;
2012-12-31 15:46:37 310
原创 [读书笔记]程序员的自我修养(1)
第一章 温故而知新1.阅读“Free Lunch is Over” http://www.gotw.ca/publications/concurrency-ddj.htm2."Any problem in computer science can be solved by another layer of indirection."计算机科学领域的任何问题都可以通过
2012-12-31 15:42:49 409
原创 [读书笔记]程序员的自我修养(2)
第二章 编译和链接1. 预处理、编译、汇编和链接比如source code and Header files----预处理----》preprocessed(.i文件)------编译------》assembly(.s文件)--------汇编--------》object file(.o文件)------and static/dynamic library-----链接------》e
2012-12-31 15:41:56 339
原创 [读书笔记]程序员的自我修养(3)
第三章 目标文件里有什么1. .bss段是为未初始化的全局变量和局部静态变量(global_init_varabal和static_var)预留位置。初始化的全局变量和局部静态变量(global_uninit_var和static_var2)放在.data段。总的来说,包含程序指令的代码段和程序数据的数据段及.bss段。原因:数据区是可读写的,指令区时只读的,防止指令被有意和无意篡改
2012-12-31 15:41:29 436
原创 [读书笔记]程序员的自我修养(4)
第四章 静态链接1. 链接的两大步:空间与地址分配,符号解析与重定位2. C++相关问题重复代码消除:比如模板,将每个模板的实例代码都单独存放在一个段里,每个段只包含一个模板实例,这样链接器在最终链接的时候可以区分这些相同的模板实例段,然后将它们合并入最后的代码段。此外,对于一个有虚函数的类来说,有一个与之相应的虚函数,编译器会在用到该类的多个编译单元生成虚函数表,造成代码重复;内联函
2012-12-31 15:40:59 348
原创 [读书笔记]程序员的自我修养(5)
第五章 Windows PE/COFF1. VS2005编译器cl,链接器link,可执行文件查看器dumpbin等映像:因为PE文件在装载的时候被直接映射到进程的虚拟空间中运行,它是进程的虚拟空间的映像。所以PE可执行文件很多时候被叫做映像文件。2. COFF Object File FormatImage Header IMAGE_FILE_HEADERSection
2012-12-31 15:40:13 379
原创 [读书笔记]程序员的自我修养(6)
第六章 可执行文件的装载与进程1. 启动参数将虚拟内存从2GB转到1GB,加入参数/3G[boot loader]timeout=2default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS[operating systems]multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microso
2012-12-31 15:39:43 487
原创 [读书笔记]程序员的自我修养(7)
第七章 动态链接1. 链接时重定位(静态链接);装载时重定位(动态链接)地址无关代码:PIC,Position-independent Code,把指令中那些需要修改的部分分离出来,跟数据部分放在一起,这样指令部分就可以保持不变,而数据部分可以再每个进程中拥有个副本。 指令跳转、调用 数
2012-12-31 15:38:51 489
原创 [读书笔记]程序员的自我修养(8)
第八章 Linux共享库的组织1. 共享库系统路径/lib:主要存放系统最关键和基础的共享库,比如动态链接库、C语言运行库、数学库等,这些库主要是那些/bin和/sbin下程序所需要用到的库,还有系统启动时需要的库。/usr/lib:非系统运行时关键性共享库,主要是开发用到的库,一般不会被用户的程序和shell脚本直接用到,还可能包含开发时用到的静态库、目标文件等。/usr/loc
2012-12-31 15:38:12 341
原创 [读书笔记]程序员的自我修养(9)
第九章 windows下的动态链接1. 创建和使用dll/* math.c */#ifdef __cplusplusextern "C"{#endif__declspec(dllexport) double Add(double a, double b){return a+b;}__declspec(dllexport) double Sub(double
2012-12-31 15:37:34 397
原创 [读书笔记]程序员的自我修养(10)
第十章 内存1. 段错误,segment fault,最普遍的原因:程序员将指针初始化为NULL,之后却没有给它一个合理的值就开始使用指针。程序员没有初始化栈上的指针,指针值一般会是随机数,之后就直接开始使用指针。2. 堆栈,保存活动记录(堆栈帧)栈底:0xbfffffff, esp寄存器指向栈顶,保存的内容:函数的返回地址和参数临时变量:包括函数的非静态局部变量以及编
2012-12-31 15:36:40 323
原创 [读书笔记]程序员的自我修养(11)
第十一章 运行库1. 环境变量和参数数组---栈的增长方向--->。。。0 env n 。。。 env 0 0 arg n 。。。 arg 0 argcesp指向arg 0;old esp指向argc2. 程序开始时分配内存用alloca,因为在程序的一开始堆还没有被初始化,而alloca是唯一可以不使用堆的动态分配机制。alloca可
2012-12-31 15:36:06 360
原创 [读书笔记]程序员的自我修养(12)
第十二章 系统调用与API1. man参数2表示系统调用手册,如man 2 read运行库是系统调用与程序之间的一个抽象层(使用简便,形式统一),但是只取平台之间功能的交集。2. windows API类别基本服务:kernel32.dll 比如文件系统、设备访问、进程、线程、内存、错误处理等图形设备接口:gdi32.dll 与图形、绘图、打印机及其他图形设备相关的操作用
2012-12-31 15:34:48 262
原创 C++编程规范(101条)读书随笔
1。组织和策略问题如果人们按照程序员编程的方式修建房屋,那么一只啄木鸟就能毁灭整个文明。第0条:不要拘泥于小节(又名:了解哪些东西不应该标准化)不要规定缩进多少,应该规定要用缩进来体现代码的结构不要强制行的具体长度,应该保证代码行的长度有利于阅读不要在命名规范方面规定太多,应该规定的是使用一致的命名规范不要规定注释体例(除非需要使用工具从特定的体例中提取文档),应该编写有用
2012-12-30 15:40:29 524
原创 实现一个跨步迭代器
#include #include #include #include using namespace std;templateclass kstride_iter{public: typedef typename std::iterator_traits::value_type value_type; typedef typename std::iterato
2012-12-30 15:34:13 296
原创 实现一个大小固定的矩阵
#include #include #include #include #include using namespace std;templateclass kvector{public: Value_T m[N]; typedef Value_T value_type; typedef Value_T* iterator; typedef
2012-12-30 15:32:57 421
原创 矩阵乘法(修正大小可变或不变的矩阵模板类)
#include #include #include #include #include #include using namespace std;templateclass kvector{public: Value_T m[N]; typedef Value_T value_type; typedef Value_T* iterator;
2012-12-30 15:31:43 516
原创 FFT例子
#include #include #include #include using namespace std;const double PI = 3.1415926536;// 位反转置换unsigned int bitReverse(unsigned int x, int log2n){ int n = 0; int mask = 0x1; for
2012-12-30 15:30:35 663
原创 一个极坐标类
#include #include using namespace std;templatestruct BasicPolar{public: typedef BasicPolar self; BasicPolar() : m() {} BasicPolar(const self& x) : m(x.m) {} BasicPolar(const T&
2012-12-30 15:27:45 321
原创 实现固定小数位数值
#include using namespace std;templatestruct BasicFixedReal{ typedef BasicFixedReal self; static const int factor = 1 << (E - 1); BasicFixedReal() : m(0) {} BasicFixedReal(double
2012-12-30 15:15:57 306
转载 [C++应用程序性能优化]程序使用内存区
/************************************************************************全局/静态数据区:存储全局变量及静态变量(包括全局静态变量和局部静态变量)常量数据区:存储程序中常量字符串等代码区栈:存储自动变量或局部变量,以及传递的函数参数等堆:用户程序控制的存储区,存储动态产生的数据**************
2012-12-30 15:12:56 298
转载 [C++应用程序性能优化]类的静态成员变量实现同一个类多个对象之间共享数据
/************************************************************************同一个类多个对象之间共享数据可以用全局变量,但是会破坏类的封装性因此可以使用类的静态成员变量************************************************************************//*
2012-12-30 15:05:20 2122
转载 [C++应用程序性能优化]对象的生命周期
#include "stdafx.h"#include #include class A{public: A() { printf("A created.\n"); } ~A() { printf("A destroyed.\n"); }};class B{public: B() { printf("B created.\n"); } ~B() { printf("B
2012-12-30 14:59:40 265
转载 [C++应用程序性能优化]单继承
class simpleClass{public: static int n_count; int n_value; char c; simpleClass() { printf("Create base class.\n"); } virtual ~simpleClass() { printf("Destroy base class.\n"); } int get_value(v
2012-12-30 14:58:28 271
转载 [C++应用程序性能优化]列表初始化和构造函数内初始化
#include #include class Val{public: Val(double v = 1.0) { for (int i = 0; i < 1000; i++) { d[i] = v + i; } } void Init(double v = 1.0) { for (int i = 0; i < 1000; i++) { d[i
2012-12-30 14:56:58 314
转载 [C++应用程序性能优化]临时对象
#include #include using namespace std;class Matrix{public: Matrix(double d = 1.0) { cout << "Matrix::Matrix()" << endl; for (int i = 0; i < 10; i++) { for (int j = 0; j < 10
2012-12-30 14:55:26 237
转载 [C++应用程序性能优化]operator+,ecxipcit
#include using namespace std;class Rational{public: Rational(int a = 0, int b = 1) : m(a), n(b) { cout << "Rational::Rational(int, int)" << endl; } Rational(const Rational& r) : m(r.m), n(
2012-12-30 14:02:24 315
转载 [C++应用程序性能优化]动态数组——摄像机
CamBlock.h#define MAX_LENGTH 1000#define MAX_FRAMES 256typedef struct _Frame { unsigned short idcamera; unsigned long length; unsigned short width; unsigned short height; unsigned char* data
2012-12-30 14:00:22 320
转载 [C++应用程序性能优化]内存分配失败处理
c++中new_handler()函数,通过set_new_handler()安装到系统上,new_handler()要执行下述操作一种:(1)使new有更多的内存可用,然后返回(2)抛出一个bad_alloc()或其派生的异常(3)调用abort()或exit()退出#include #include using namespace std;char *gPool;v
2012-12-30 13:57:05 343
原创 C#调用返回C++指针的缓冲区,并释放
在C++的函数中new了一段内存char *test(char* filename){ new一段内存}void release(char *mm);{ delete一段内存} [DllImport("test.dll", EntryPoint = "test", CallingConvention = CallingConvention.Cdecl
2012-12-30 13:54:35 1735
原创 博客搬家
原来在baidu空间建立了一个平时资料收集的空间,由于升级原因导致一些珍贵数据丢失,所以转移到CSDN原空间地址:http://hi.baidu.com/beansteven很生气原来的博客有一些平时积累的链接,经过baidu空间的升级,全找不着了,所以决定搬家了很心痛原来的一些自己原创,作为笔记的文章已经荡然无存了很麻烦我现在从中将一些自己较为满意的原创文章copy过
2012-12-30 13:44:08 280
原创 Linux内核初始化定义
1. Compile宏控制位于include/linux/init.h/* These are for everybody (although not all archs will actually discard it in modules) */#define __init __section(.init.text) __cold notrace#define __init
2012-12-28 21:39:55 2888
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人