Daily Archives: 2013/04/03


身体是革命的本钱,记得要锻炼身体。继续加油。 作为一个IT从业人员,许多年来,锻炼一直都也我没什么关系,再加上平时生活没什么规律,久而久之就烙下一堆这样那样的小毛病,而且在过了三十五之后,这个感觉更加突显: 1. 总觉得很累。休息也没用。 2. 每次放长假就容易生病。平时一根筋绷着,一旦松下来就容易垮下 。 。。。。。。 上个月(十月)月底,开始打羽毛球。 第一次打:https://plus.google.com/109817607315091828712/posts/bQpa4PqvxoD 第二次打:https://plus.google.com/109817607315091828712/posts/TVhpUD1yY5u 第三次打:https://plus.google.com/109817607315091828712/posts/h6mfxMJHzZY 第四次打:https://plus.google.com/109817607315091828712/posts/PkyJqmzu7Ag 昨天是第五次打,终于从原先第一次打时,浑身痛了整整一个星期,到现在开始觉得打得不过瘾,呵呵,其实原因是昨天是打双打,若是换打单打肯定体力还跟不上,不过,这对我自己来说,已经是很大的进步了。 当然,除此之外,还有一件让我兴奋的事,前两天(周四感恩节),在跟同事Maggie闲聊中,Maggie说了一句:“Jacky好象现在身体很好,很少感冒了………”。我知道她不是在咒我感冒(XD),所以顺口回了一句:现在我生活很有规律。 其实,那个时候我才想起来,的确是这样。 而且除了很少生病外,整个人相对来说也感觉比以前舒服了好多。 今天恰好看到网上的一句话: 多做有氧运动,刺激脑部分泌一种使人感到愉快的荷尔蒙“安多酚”,又叫“心灵止痛剂”。 所以,我也才补写了这一篇博文,一是作为记录,二是作为鼓励,三是作为鞭策。 继续加油!!!

周末羽毛球锻炼


值此感恩节来临之际,特别感谢妈妈,感谢老婆大人。 今天下班的时候,Maggie突然跟我说:“现在Jacky很少感冒了……”,我回了一句:“我现在生活比较有规律了”。这个时候我再想: 的确,今年以来每天下班都比以前早,吃饭也及时且有规律,一般也就晚个一个钟头回家,很少像以前那样晚上9点、10点才回家。 的确,今年我的身体的确有很大的“进步”了,今年除了运气比较差,珍藏十几年资料的硬盘坏掉且无法恢复任何数据,另外被人撞了两次年,病真的一次也没生过,连以往常常发生的感冒和喉咙痛都一次未曾有过(尤其是春夏交替、秋冬交替之时)。 恰今日正好是洋人的感恩节,为了这一年来的好身体,我也需要特别感恩一下,感谢妈妈,感谢老婆,正是因为你们,才让我有这么健康的身体,这么快乐的生活。感谢你们。 摘一句腾讯微博看到的话吧: 节日有不同,感恩无国界。向父母感恩,需要孝心;向朋友感恩,需要诚心;向爱人感恩,需要真心;向生命感恩,需要爱心。11月22日感恩节,感恩有你,愿你有一颗感恩的心,把最美的祝福送给身边人吧!

三言两语,点滴感恩


经过连续4周的课程,英语课程终于在今天迎来考试,其实这个考试对我自己来说,真没什么好讲的,我相信自己肯定考得不错。我要讲的是这个过程。 也许因为英语是第一门课,这一届的学生到课率都还算非常的良好,至少在80%~90%以上,当然,除此之外还必须承认的是: 1. 这个老师也不错。人不错,课上得也不错。 2. 相对于其他课程来说,大家对英语也更加感兴趣一点。 就拿我来讲,至少我认为这门课拓展了自己的一些想法。当然,实际上这些资料你不用花钱去上课,也能在网上看到,只是不花钱和花钱的区别是,花了钱你会更加心疼。而心疼了之后带来的好处是:你得尽可能的努力的让花了的钱有所值。 好吧,为了让我花了的钱能值得更多,我准备回头再把一些这门课中学的一些个人觉得有用的、有意义的资料再稍微整理一下,放到每周周会上跟部门内的同仁们一起分享,同时也放到网上来跟大家一起分享。

记录人生:中科大软工英语课程



首先要说明一下,其实很多年前的俺一直有一个每个月不定期记录一下流水帐的习惯,但是不知道从猴年还是马月开始,这个习惯被有意无意的遗忘了,恰好这个月,又作出了一个十几年前就该决定的事情(上学),所以,我想,是时候把这个习惯恢复起来了。 由于时间关系(实在有一点点小忙),这个头可能开得不好,我只能列一点梗概: 开心的事 1. 又成为一个学生(所以更忙)。 2. 由于一直严重的缺乏锻炼,身体一直觉得不舒服,从上周开始打羽毛球,到目前为止坚持了两次,希望能继续坚持下去。 不开心的事 1. 上了一个月的课后,被告知学费涨了。 2. 由于主持开发的一个项目一直delay,被远在HQ的老板要求GUESS which day is the release date。对于这一点,其实我有很多感触(包括labor division项目分工、job responsibility职责定位、multi-site管理),也许现在不是时候,但我希望在今年的年终总结里有所体现。

记录人生:2012年10月


与去年相比,今年的考研分数线总体上升。学术型学位中除哲学、经济学、军事学分数线略有下降外,包括教育学、历史学、管理学等10门学科的分数线均有所提高。 教育部公布《2013年全国硕士研究生招生考试考生进入复试的初试成绩基本要求》。与去年相比,今年的考研分数线总体上升。学术型学位中除哲学、经 济学、军事学分数线略有下降外,包括教育学、历史学、管理学等10门学科的分数线均有所提高。专业型学位中,除临床医学的总分略降外,审计、教育(汉语言 国际教育)、应用心理、艺术等11门学科的分数线均有所提高。各硕士生招生单位即将全面启动复试、录取工作。【进入2013考研复试专题】 教育部要求各省级教育部门和招生单位要高度重视、精心组织复试录取工作;加强复试考核,着力强化对考生创新精神和能力、专业兴趣和素养等方面的考 查;充分发挥和规范导师群体在复试选拔中的作用;规范复试录取工作程序,严肃招生纪律,大力推进信息公开,确保招生录取公平公正。 教育部同时要求各省级招生考试管理机构、各招生单位要切实加强针对复试考生的服务工作。为方便考生调剂,4月1日至5月5日,教育部将在“中国研究生招生信息网”(公网网址:http://yz.chsi.com.cn,教育网网址:http://yz.chsi.cn)开通“全国硕士研究生招生调剂服务系统”。符合条件且有调剂愿望的考生可及时上网了解调剂信息和调剂系统的使用方法,按要求申请调剂,招生调剂单位要认真细致地做好相关工作。【微博热议2013考研国家线】 附: 2013年全国硕士研究生招生考试考生进入复试的初试成绩基本要求(学术型学位类) 学科门类(专业)名称 A类考生* B类考生* 备 注 总分 单科(满分=100分) 单科(满分>100分) 总分 单科(满分=100分) 单科(满分>100分) 哲学 280↓ 38 57 270↓ 35↓ 53↓ *A类考生:报考地处一区招生单位的考生。 *B类考生:报考地处二区招生单位的考生。 一区系北京、天津、河北、山西、辽宁、吉林、黑龙江、上海、江苏、浙江、安徽、福建、江西、山东、河南、湖北、湖南、广东、重庆、四川、陕西等21省(市); 二区系内蒙古、广西、海南、贵州、云南、西藏、甘肃、青海、宁夏、新疆等10省(区)。 * 工学照顾专业:力学[0801]、冶金工程[0806]、动力工程及工程热物理[0807]、水利工程[0815]、地质资源与地质工程[0818]、矿 业工程[0819]、船舶与海洋工程[0824]、航空宇航科学与技术[0825]、兵器科学与技术[0826]、核科学与技术[0827]、农业工程 [0828]。 *中医类照顾专业:中医学[1005]、中西医结合[1006]。 *享受少数民族政策的考生:‘ 报考地处二区招生单位,且毕业后在国务院公布的民族区域自治地方就业的少数民族普通高校应届本科毕业生考生;或者②工作单位在国务院公布的民族区域自治地方,为原单位定向或委托培养的少数民族在职人员考生。 经济学 340↓ 49↓ 74↓ 330↓ 46↓ 69↓ 法学 315 42 63 305 39 […]

2013年全国硕士研究生考试复试分数线划定


1
We finished our last class of data mining, and Professor Zhu(朱明) would like to close this course by a thesis about data mining, and the data material would better if relevant to our job. Here are the detail requirements: The five steps about writing this thesis: 1)      业务需求分析  比如:为了研究XXX数据,对YYY有帮助,bla bla […]

Preparing a thesis of data mining



Early this morning, I got a message from PJBS that tomorow(2013/3/9) will be our special english exam, it’ll be a closed-book exam. No cellphones, no tablets, only dicts are allowed. Wondering why this course is so important? It’s not a professional course (is it??). Anyway lucky me, Lucy has a […]

Exam for special english


题目: 输入一棵二叉查找树,将该二叉查找树转换成一个排序的双向链表。 要求不能创建任何新的结点,只调整指针的指向。          10         /  \        6    14       /\    / \      4  8  12  16 转换成双向链表 4=6=8=10=12=14=16。 首先我们定义的二叉查找树节点的数据结构如下: struct BSTreeNode { int m_nValue; // value of node BSTreeNode *m_pLeft; // left child […]

把二叉查找树转变成排序的双向链表


最近才捡起的算法设计与分析.分析不准确的地方谅解,请各位看官指正. 1. 分治法与动态规划主要共同点: 二者都要求原问题具有最优子结构性质,都是将原问题分而治之,分解成若干个规模较小(小到很容易解决的程序)的子问题.然后将子问题的解合并,形成原问题的解. 2. 分治法与动态规划实现方法: ① 分治法通常利用递归求解. ② 动态规划通常利用迭代法自底向上求解,但也能用具有记忆功能的递归法自顶向下求解. 3. 分治法与动态规划主要区别: ① 分治法将分解后的子问题看成相互独立的. ② 动态规划将分解后的子问题理解为相互间有联系,有重叠部分. 例如: 在求解斐波那契数列过程中,求解fibonacci(5)时,得求解fibonacci(4)和fibonacci(3).其中,求解fibonacci(4)时,需要求解fibonacci(3). 在分治法中,求解完fibonacci(4)后还得重新求解fibonacci(3),即使求解fibonacci(4)子问题的时候已经求解过,也就是说,求解了二次子问题fibonacci(3). 动态规划为了避免类似子问题fibonacci(3)的重复求解,将已经求解过的子问题的解保存下来,在需要的时候将解值取出来,省去子问题解的重复求解过程. 4. 分治法与动态规划适用条件: ① 原问题具有最优子结构性质的前提下,分解出的子问题都绝对相互独立. ② 原问题具有最优子结构性质的前提下,分解出的子问题并不相互独立,求解一个子问题可能要用到已经求解过的子问题的解,子问题间具有重叠性,即适合具有重叠子问题性质的原问题. 5. 分治法与动态规划复杂度分析: ① 分治法因为对子问题进行了多次求解,所以效率比动态规划低一点.(时间复杂度相对高) ② 动态规划求解需要将子问题的解保存下来,所以会比分治法多用一些空间.(空间复杂度相对高) 其实,算法世界里,要么用时间换空间,要么用空间换时间.

分治法与动态规划小结



动态规划和贪心算法都是一种递推算法, 均有局部最优解来推导全局最优解.但它们的不同是… 相同点: 动态规划和贪心算法都是一种递推算法 均有局部最优解来推导全局最优解  不同点:  贪心算法:  1.贪心算法中,作出的每步贪心决策都无法改变,因为贪心策略是由上一步的最优解推导下一步的最优解,而上一部之前的最优解则不作保留。  2.由(1)中的介绍,可以知道贪心法正确的条件是:每一步的最优解一定包含上一步的最优解。  动态规划算法:  1.全局最优解中一定包含某个局部最优解,但不一定包含前一个局部最优解,因此需要记录之前的所有最优解  2.动态规划的关键是状态转移方程,即如何由以求出的局部最优解来推导全局最优解  3.边界条件:即最简单的,可以直接得出的局部最优解 ============================================================================== 贪心算法与动态规划  贪心法的基本思路:        从问题的某一个初始解出发逐步逼近给定的目标,以尽可能快的地求得更好的解。当达到某算法中的某一步不能再继续前进时,算法停止。    该算法存在问题:    1.   不能保证求得的最后解是最佳的;    2.   不能用来求最大或最小解问题;    3.   只能求满足某些约束条件的可行解的范围。实现该算法的过程:    从问题的某一初始解出发;    while   能朝给定总目标前进一步   do    求出可行解的一个解元素;    由所有解元素组合成问题的一个可行解  贪心算法最经典的例子,给钱问题。    比如中国的货币,只看元,有1元2元5元10元20、50、100        如果我要16元,可以拿16个1元,8个2元,但是怎么最少呢?    如果用贪心算,就是我每一次拿那张可能拿的最大的。    比如16,我第一次拿20拿不起,拿10元,OK,剩下6元,再拿个5元,剩下1元    也就是3张   10、5、1。        每次拿能拿的最大的,就是贪心。        但是一定注意,贪心得到的并不是最优解,也就是说用贪心不一定是拿的最少的张数    贪心只能得到一个比较好的解,而且贪心算法很好想得到。    再注意,为什么我们的钱可以用贪心呢?因为我们国家的钱的大小设计,正好可以使得贪心算法算出来的是最优解(一般是个国家的钱币都应该这么设计)。如果设计成别的样子情况就不同了    比如某国的钱币分为   1元3元4元    如果要拿6元钱   怎么拿?贪心的话   […]

动态规划和贪心算法的区别


本文的文字部分转载自博客园,但由于其Dijkstra算法的代码存在一些问题,故特修改了一版该算法,更新上去。供大家参考。 本文相关的习题: 试举例说明如果允许带权有向图中某些边的权为负实数,则Dijkstra算法不能正确求得从源到所有其他顶点的最短路径长度。 Dijkstra算法 算法流程: (a) 初始化:用起点v到该顶点w的直接边(弧)初始化最短路径,否则设为∞; (b) 从未求得最短路径的终点中选择路径长度最小的终点u:即求得v到u的最短路径; (c) 修改最短路径:计算u的邻接点的最短路径,若(v,…,u)+(u,w)<(v,…,w),则以(v,…,u,w)代替。 (d) 重复(b)-(c),直到求得v到其余所有顶点的最短路径。 特点:总是按照从小到大的顺序求得最短路径。 假设一共有N个节点,出发结点为s,需要一个一维数组prev[N]来记录前一个节点序号,一个一维数组dist[N]来记录从原点到当前节点最短 路径(初始值为s到Vi的边的权值,没有则为+∞),一个二维数组weights[N][N]来记录各点之间边的权重,按以上流程更新prev[N]和 dist[N]。 参考代码: //第四章:贪心算法 ////////////////////////////////////////////////////////////////////////// //FUNCTION: Dijkstra 4.4 单源最短路径问题, P105 //INPUT: //    带权有向图G=(V, E) //    V = {1, 2, …, n}, 顶点v是源点 //    c是一个二维数组,c[i][j]表示边(i, j )的权,当<i, j> 属于E时,c[i][j]是一个大数(无穷大) //    dist[i]表示当前从源点到顶点的i 的最短路径长度. //OUTPUT: //    路径数组prev[] ////////////////////////////////////////////////////////////////////////// […]

单源最短路径算法–Dijkstra算法和Bellman-Ford算法


要使计算机能完成人们预定的工作,首先必须为如何完成预定的工作设计一个算法,然后再根据算法编写程序。计算机程序要对问题的每个对象和处 理规则给出正确详尽的描述,其中程序的数据结构和变量用来描述问题的对象,程序结构、函数和语句用来描述问题的算法。算法数据结构是程序的两个重要方面。 算法是问题求解过程的精确描述,一个算法由有限条可完全机械地执行的、有确定结果的指令组成。指令正确地描述了要完成的任务和它们被执行的顺序。计 算机按算法指令所描述的顺序执行算法的指令能在有限的步骤内终止,或终止于给出问题的解,或终止于指出问题对此输入数据无解。 通常求解一个问题可能会有多种算法可供选择,选择的主要标准是算法的正确性和可靠性,简单性和易理解性。其次是算法所需要的存储空间少和执行更快等。 算法设计是一件非常困难的工作,经常采用的算法设计技术主要有迭代法、穷举搜索法、递推法、贪婪法、回溯法、分治法、动态规划法等等。另外,为了更简洁的形式设计和藐视算法,在算法设计时又常常采用递归技术,用递归描述算法。 一、迭代法 迭代法是用于求方程或方程组近似根的一种常用的算法设计方法。设方程为f(x)=0,用某种数学方法导出等价的形式x=g(x),然后按以下步骤执行: (1)   选一个方程的近似根,赋给变量x0; (2)   将x0的值保存于变量x1,然后计算g(x1),并将结果存于变量x0; (3)   当x0与x1的差的绝对值还小于指定的精度要求时,重复步骤(2)的计算。 若方程有根,并且用上述方法计算出来的近似根序列收敛,则按上述方法求得的x0就认为是方程的根。上述算法用C程序的形式表示为: 【算法】迭代法求方程的根 {    x0=初始近似根; do { x1=x0; x0=g(x1);   /*按特定的方程计算新的近似根*/ } while ( fabs(x0-x1)>Epsilon); printf(“方程的近似根是%f\n”,x0); } 迭代算法也常用于求方程组的根,令 X=(x0,x1,…,xn-1) 设方程组为: xi=gi(X)      (I=0,1,…,n-1) 则求方程组根的迭代算法可描述如下: 【算法】迭代法求方程组的根 {    for (i=0;i         x[i]=初始近似根; do { for (i=0;i     […]

常用算法设计方法



最少费用购物 Description ?问题描述: 商店中每种商品都有标价。例如,一朵花的价格是2元。一个花瓶的价格是5 元。为了吸引顾客,商店提供了一组优惠商品价。优惠商品是把一种或多种商品分成一组,并降价售。例如,3朵花的价格不是6元而是5元。2 个花瓶加1 朵花的优惠价是10 元。试设计一个算法,计算出某一顾客所购商品应付的最少费用。 ?编程任务: 对于给定欲购商品的价格和数量,以及优惠商品价,编程计算所购商品应付的最少费用。 Input 由文件input.txt提供欲购商品数据。文件的第1行中有1 个整数B(0≤B≤5),表示所购商品种类数。接下来的B 行,每行有3 个数C,K 和P。C 表示商品的编码(每种商品有唯一编码),1≤C≤999。K 表示购买该种商品总数,1≤K≤5。P 是该种商品的正常单价(每件商品的价格),1≤P≤999。请注意,一次最多可购买5*5=25件商品。由文件offer.txt提供优惠商品价数据。文 件的第1行中有1 个整数S(0≤S≤99),表示共有S 种优惠商品组合。接下来的S 行,每行的第一个数描述优惠商品组合中商品的种类数j。接着是j 个数字对(C,K),其中C 是商品编码,1≤C≤999。K 表示该种商品在此组合中的数量,1≤K≤5。每行最后一个数字P(1≤ P≤9999)表示此商品组合的优惠价。 Output 程序运行结束时,将计算出的所购商品应付的最少费用输出到文件output.txt中。 Sample Input input.txt 2 7 3 2 8 2 5 offer.txt 2 1 7 3 5 2 7 1 8 2 […]

最小费用购物问题


用2 台处理机A 和B 处理n个作业。设第i 个作业交给机器A 处理时需要时间ai,若由机器B来处理,则需要时间bi。由于各作业的特点和机器的性 能关系,很可能对于某些i,有ai>=bi,而对于某些j,j≠i,有aj<bj,既不能将一个作业分开由2 台机器处理,也没有一台机器能 同时处理2 个作业。设计一个动态规划算法,使得这2 台机器处理完这n个作业的时间最短(从任何一台机器开工到最后一台机器停工的总时间)。 input 6 2 5 7 10 5 2 3 8 4 11 3 4 output15 //独立任务调度 #include<iostream> #include<vector> using namespace std; const int n=6; int a1[]={2,5,7,10,5,2}; int b1[]={3,8,4,11,3,4}; class tree { public: int a,b; }; int main() { cout<<“******************************************”<<endl; cout<<”         任务调度情况如下:”<<endl; cout<<”       (1)作业数目:”<<n<<endl; cout<<”       (2)各作业处理时间:”<<endl; cout<<”       “; for(int aj=0;aj<n;aj++) cout<<a1[aj]<<” “; cout<<endl; cout<<”       “; for(int bj=0;bj<n;bj++) cout<<b1[bj]<<” […]

独立任务最优调度问题


【实验目的】 练习掌握动态规划算法。 【实验内容】 设计一个O(n*n)时间的算法,找出由n个数组成的序列的最长单调递增子序列。 【实验条件】 Microsoft Visual C++ 6.0 【需求分析】 题目要求在O(n*n)的时间内找出n个数组成的序列的最长单调递增子序列,需要用到排序算法,查找最长公共子序列的算法。 【设计原理】 将数组a复制到数组x,先用排序算法将数组x排序,在调用查找最长公共子序列的算法求出数组a和数组x中的最长公共子序列,因为数组x是单调递增的,所以由此求出来的最长公共子序列就是题设所求的最长单调递增子序列。 【概要设计】 数据: N:数组元素个数。 a[N]:用于存放数组。 X[N]:复制数组a[N],并排序。 c[i][j]:存储a和x的最长公共子序列的长度。 b[i][j]:记录c[i][j]的值是由哪一个资问题的解得到的。 函数: int Partition(int a[],int p,int t,int x); //数组划分,将小于等于x的元素移到x左边,大于x的元素移到x右边。 void Swap(int &x,int &y); //交换元素x和y。 void QuickSort(int a[],int p,int r); //快速排序。 void LCSL(int m,int n,int *x,int *y,int **c,int **b); //计算最长公共子序列长度。 void LCS(int […]

在O(n*n)时间内出由n个数组成的序列的最长单调递增子序列。