自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 资源 (1)
  • 收藏
  • 关注

原创 collision by chaining的hash的cpp模板实现

///////////////////////////////////////////////////////#ifndef _HASHTBL_H#define _HASHTBL_Husing namespace std;/////////////////////////////////////////////////////////常用的Hash函数/* * 字符串Has

2013-12-26 16:14:59 616

原创 滑雪问题的分支限界法求解

首先明白一件事情,最长的路径总是从最高点开始的!import java.util.*;public class Demo{ /** * 计算区域最长长度 * * Michael喜欢滑雪这并不奇怪,因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜, * 而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michae

2013-12-25 15:50:53 680

原创 过河卒问题的动态规划求解(分支限界或者回溯过于耗时)

如图,A 点有一个过河卒,需要走到目标 B 点。卒行走规则:可以向下、或者向右。同时在棋盘上的任一点有一个对方的马(如上图的C点),该马所在的点和所有跳跃一步可达的点称为对方马的控制点。例如上图 C 点上的马可以控制 9 个点(图中的P1,P2 … P8 和 C)。卒不能通过对方马的控制点。#include #include "OJ.h"    #define  MAX

2013-12-25 11:50:27 766

转载 约瑟夫环的数学解决

约瑟夫环(Josephus)问题是由古罗马的史学家约瑟夫(Josephus)提出的,他参加并记录了公元66—70年犹太人反抗罗马的起义。约瑟夫作为一个将军,设法守住了裘达伯特城达47天之久,在城市沦陷之后,他和40名死硬的将士在附近的一个洞穴中避难。在那里,这些叛乱者表决说“要投降毋宁死”。于是,约瑟夫建议每个人轮流杀死他旁边的人,而这个顺序是由抽签决定的。约瑟夫有预谋地抓到了最后一签,并且,作为

2013-12-25 10:11:54 638

原创 python的排序方法

>>> a.sort()>>> a[1, 2, 3, 4, 5]>>> a=[1,"abc",2,"xxx"]>>> a.sort()>>> a[1, 2, 'abc', 'xxx']L.sort(func)   把func(x,y)作为排序函数,返回-1,0和+1

2013-12-24 16:18:19 537

翻译 备忘录模式

Also Known AsToken MotivationSometimes it's necessary to record the internal state of an object. This is required when implementing checkpoints and undo mechanisms that let users back out

2013-12-24 15:56:39 774

原创 python字符串倒排

对字符串中的所有单词进行倒排。说明:1、每个单词是以26个大写或小写英文字母构成;2、'-‘做为单词连接符使用时,视为单词的一部分,例如“aa-bb”是一个单词;但连续出现2个’-’及以上时视为单词间隔符,如“aa--bb”中的“--”视为间隔符,是2个单词“aa”和“bb”;3、非构成单词的字符均视为单词间隔符;4、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词

2013-12-24 15:18:30 2055

翻译 python的lamda表达式

lambda形式lambda语句被用来创建新的函数对象,并且在运行时返回它们。例15.2 使用lambda形式#!/usr/bin/python# Filename: lambda.pydef make_repeater(n):    return lambda s: s*ntwice = make_repeater(2)print twice('word')p

2013-12-24 11:11:51 749

转载 拷贝构造与深拷贝

对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。#include using namespace std;class CExample {private:    int a;public:    CExampl

2013-12-20 15:58:27 432

原创 python求解一个数的阶乘有几个零

算法: 0的个数为  n/5+n/25+n/125+n/(5^i)'''求一个数的阶乘末尾有多少个0要求:大于或等于0小于10000的整数2.输入非数字或者超过范围,则退出程序用例:输入                  输出'5'        '5! have 1 zero''e'         'e is not a number''10000'  

2013-12-19 16:48:07 2090

原创 图像的四叉树广度优先存储

#include #include #include #include #include#include #include #include using namespace std;typedef struct quardresult_t{    int seq;    char val;}QuadResult;/* 象限 */typedef en

2013-12-18 12:01:48 1313

原创 图像的四叉树深度优先存储

#include #include "QuadTree.h"#include #include #include #include#include #include #include using namespace std;typedef struct structQTree QTree;struct structQTree{ unsigned char pixel;

2013-12-18 08:42:17 1304

原创 长整数相乘的字符串表示法

容易出错的地方在于 字符串的0位恰好代表长整数的高位*详细描述:   char* LongIntegerMul(char* pNum1, char *pNum2);输入参数:         char* pNum1:使用字符串表示的长整数1         char* pNum2:使用字符串表示的长整数2输出参数(指针指向的内存区域保证有效):         

2013-12-18 08:18:55 892

原创 分支限界法解决 二维最长下降序列问题(滑雪场问题)

int [][]all={{1,2,3,4,5},                    {16,17,18,19,6},                    {15,24,25,20,7},                    {14,23,22,21,8},                    {13,12,11,10,9}};数组中的数值表示的是该点的高度

2013-12-17 21:42:58 858

原创 四叉树存储2^n大小的图像

#include typedef struct structQTree QTree;struct structQTree{    unsigned char pixel;    bool isLeaf;    QTree *children[4];};/* 象限 */enum{    TOP_RIGHT = 0,    TOP

2013-12-17 16:26:18 2110

翻译 状态模式实现依赖于状态的行为

应用场景描述: 一个开关可以被pull或者push,共有三种不同的颜色,称为状态,每种不同的颜色下执行push或者pull得到的下一个状态不同,即一个有穷状态机,对不同的输入有不同的响应。因为状态改变比较复杂,因此不用if和else来实现。而是定义一个state的父类,然后开关不同的颜色继承这个state父类。根据不同的pull或者push来改变颜色。the State and Stategy

2013-12-17 14:52:11 652

原创 贪心法求解多处理器问题

有jobNum个任务等待machineNum个处理器去完成,任务不可细分,求最优完成时间。本质是NP问题,但是可以通过贪心法来求近似解:策略: 对jobNum个任务按其占用处理器的时间排序,最重的任务往前排,每次选择最早空出来的处理器安排给最重的任务。例如7个独立作业{2,14,4,16,6,5,3}的三处理器调度为M1:  4M2: 2-7M3: 5-6-3-1

2013-12-17 11:34:23 757

原创 素数筛法计算完全数

完全数的性质: 如果i为质数,且2^i-1为质数,则(2^i-1)*2^(i-1)是完全数public final class Demo{        /**     *      * 完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。     * 它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。    

2013-12-16 22:03:56 814

原创 长整数的乘法

思路比较简单但是编写程序特别容易出错,思路就是用字符串来模拟乘法的计算,错误的地方在于,字符串的低位恰恰是其代表的长整数的高位测试用例#include #include "CExampleTest.h"#include #include #include extern char* LongIntegerMul(char* pNum1, char *pNum2);

2013-12-16 16:22:45 1737

原创 cpp二维数组的创建和删除

int** mk2dArray(int a,int b)// a行b列{    int** m=new int*[a+1];    for(int i=0;i    {        m[i]=new int[b+1];    }    return m;}void del2dArray(int **m,int a,int b){    for(int

2013-12-16 11:19:21 1008

原创 0-1背包问题的动态规划求法(开心的小明)

注意:动态规划问题的子问题的解并不包含全局最优解!而是全局最优解包含子问题的解!也即子问题的局部最优解是什么并不能最终决定全局解在该局部的取值。因此动态固化存储了所有的情况,不管这些情况是否会被用到,自底向上的过程中,不知道上层的解应该是怎么样。求解的过程中也没有存储解的结构,而是只计算最优质,最后回溯来获得解的结构。问题描述:给定n种物品和一背包。物品i的重量是wi,其价值为vi,背

2013-12-16 10:21:54 918

转载 蜂窝小区的数学模型

设计模型:1、  设计一个XY轴坐标系,1是原点,坐标(0,0)2、  X轴:49、28、13、4、1、7、19、37、61的六边形中心所在直线(如图),1和7之间的距离是7,对应坐标轴的1个刻度3、  Y轴:45、25、11、3、1、6、17、34、57 的六边形中心所在直线(如图),同样刻度是14、  从内向外都是有一个个圈(Cycle)组成,1是第0圈,2-7是第1圈,8-1

2013-12-14 14:29:33 5673

原创 分治法求解放苹果问题(量子力学的状态问题,完全相同的苹果和完全相同的盘子)

题目描述把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。 输入每个用例包含二个整数M和N。0,1。 样例输入7 3 样例输出8    /**     * 计算放苹果方法数目     * 输入值非法时返回-1     * 1      * @par

2013-12-13 21:51:53 847

原创 java Comparator 接口的用法

import java.uitil.*;class UserComparator implements Comparator {    UserComparator(int flag){ascendFlag=flag;}   int ascendFlag;   public int compare(User o1, User o2)    {         int r

2013-12-13 20:21:06 510

原创 同余方程(线性模方程)求解青蛙约会问题

两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的。但是除非这两只青蛙在同一时间跳到同一点上,不然是永远都不可能碰面的。为了帮助这两只乐观的青蛙,

2013-12-13 11:46:06 1136

原创 数论基本理论的整理

1. 大整数情况,衡量问题复杂度是输入的整数的位数,衡量效率是位操作的次数。2. 除法定理:a=qn+r, 余数为r3. 取模可以划分等价类,[a]n表示模n后余数为a的数即 a+k*n;  例如[3]7=[-4]7=[10]7中,k分别取 0,-1,1. 等价类的代表元是3,3+k*7即等价类的所有的元素4. 用Zn表示所有的模n的等价类地集合即Zn={[a]n: 05. a

2013-12-13 09:51:21 1579

原创 推广的欧几里得算法--对于求解 线性模方程 有用

问题描述: d=gcd(a,b)=ax+by, (1)求出满足条件的x和y。这个问题的求解有助于计算模乘法的逆。Extended-Eculid要求输入两个非负整数,返回一个满足方程(1)的 triple (d,x,y)a   b   floor(ab) d x y[function begin]extended-euclid(a,b)if b==0 return (a,1,

2013-12-13 08:40:25 1216

原创 注解java并发执行的一个例子(选自thinking in java)

// Demonstration of the Runnable interface.  public class LiftOff implements Runnable {  //实现Runnable接口  protected int countDown = 10; // Default   private static int taskCount = 0;           

2013-12-11 20:23:42 555

翻译 JAVA容器的使用

ArrayList and LinkedList are both types of List, and you can see from the output thatthey both hold elements in the same order in which they are inserted. The difference betweenthe two is not

2013-12-11 15:40:02 439

转载 整数的加法拆分

题目描述一个整数总可以拆分为2的幂的和,例如:7=1+2+47=1+2+2+27=1+1+1+47=1+1+1+2+27=1+1+1+1+1+27=1+1+1+1+1+1+1总共有六种不同的拆分方式。再比如:4可以拆分成:4 = 4,4 = 1 + 1 + 1 + 1,4 = 2 + 2,4=1+1+2。用f(n)表示n的不同拆分的种数,例如f(7)=6.

2013-12-11 08:30:30 2529

原创 通信原理之 正交编码

4 正交编码4.1相关函数与相关系数:相关函数没有归一化,相关系数并非用信号的模来归一化,而是用信号的个数n来归一化。对于正负1的信号Correlation coefficient= A-D/A+D, A为对应位相同的个数,D为对应位相反的个数,相同时+1*+1=1,-1*-1=1,相反时+1*-1=-1,故A-D为sigmaxiyi,而A+D=n。超正交supert orthog

2013-12-06 21:13:10 6463

原创 动态规划求解最长公共子串的问题

2. 动态规划求解最长公共子串的问题2.1 问题描述:Description     找出2个给定字符串中最长的公共子字符串Prototype       void vProcTaskToCoreByLayerAndTime(unsigned int Layer,unsigned int* pDuration)Input Param     char* pSrcStr1, ch

2013-12-06 19:42:58 564

原创 c语言的模板 qsort 的用法

qsort 语法:    #include   void qsort( void *buf, size_t num, size_t size, int (*compare)(const void *, const void *) );功能: 对buf 指向的数据(包含num 项,每项的大小为size)进行快速排序。如果函数compare 的第一个参数小于第二个参数,返回负值;如果等

2013-12-05 18:38:09 504

原创 Hash表基础知识

1.1 除法hash表H(k)=k mod m, 这里m不应该是2的p幂次,否则对m取模等价于取k的低p位,除非k的低p位足以区分各个记录。当k是一个按基数2^p解释的字符串时,选m=2^p-1不好,因为对k的各个字符进行排列并不会改变其散列值.M的选择应该取与2的整数幂不太接近的质数。1.2   乘法hash表用关键字k乘以常数A(0并取出结果的小数部分,然后用m乘以

2013-12-05 18:30:43 529

原创 体系结构基本概念

1   zero overhead loop无branch开销不需要在jump时进行流水重建?2   粗粒度线程thread与SMT的概念      进程的概念:在多任务的操作系统中有多个进程存在于虚拟内存中。操作系统维护四张表,内存表,IO表,文件表和进程表,称为os control table。Process control block:进程在内存的manifest

2013-12-05 18:29:48 1182

原创 类的成员指针(对比于c语言中的函数指针)

class Screen { public: typedef std::string::size_type index; char get() const; char get(index ht, index wd) const; private: std::string contents; index cursor; index height, width; };  成员指针定义为

2013-12-05 17:49:50 531

原创 hash表的openADDRESSing的c语言实现

int ProbeArray[]={997,***}; //一个合适的素数序列用来open addressingtypedef struct{ ElemType *elem; //数据元素的动态分配首地址 Int count; // 当前数据元素个数 Int sizeindex; // 动态数组的当前容量}HashTable;#define SUCCESS 1#d

2013-12-05 17:48:07 878

原创 合唱队问题的动态规划解法

问题描述:N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学不交换位置就能排成合唱队形。合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1, 2, …, K,他们的身高分别为T1, T2, …, TK,则他们的身高满足T1 Ti+1 > … > TK (1 你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排

2013-12-05 17:47:40 2923

原创 利用函数指针统计字符串中各种类型字符的个数

/*功能:对输入的字符串,分别统计字符串内英文字母、空格、数字和其他字符的个数    输入:char* pInputString:字符串    输出:int * pCharNum:英文字母个数     int * pBlankNum:空格个数     int * pDigitNum:数字个数     int * pOtherNum:其它字符个数     返回

2013-12-05 15:11:45 3692

原创 cpp中的句柄 (二)

如果希望用容器来保存因为继承而相关联的对象,若定义基类的容器,则当派生类被计入到容器中时,非基类部分将被切掉。为了解决这个问题,定义句柄。C++真正实现容器的面向对象无法通过对象本身,而必须通过指针或者引用。Handle类又称为cover类。句柄类用来存储和管理基类的指针。指针所指对象的类型可以变化,它既可以指向基类类型对象又可以指向派生类的对象。用户通过句柄类访问继承层次的操作。因为句柄类使

2013-12-05 14:44:36 671

java script visual quick start

第八版英文版,本书是新手入门的教材,涵盖的内容很广泛很权威

2013-06-11

空空如也

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

TA关注的人

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