摘要: 对于勾股数想必大家一定很熟悉,小学开始就知道直角三角形的边长关系满足勾股定理.不过,关于勾股数的更多性质,却很少会去探究.那么如何快速地产生勾股数三元组呢? 如果a,b,c三者两两互质,那么称为素勾股数.由于非素勾股数都可以转化为素勾股数(除掉公因子后,即互质),所以,这里只研究素勾股素. 一.性质分析 1.如果a,b互质,那么a和b当中有且仅有一个奇数 证明过程如下: (注意:上述所说任意完全平方整数实为完全平方偶数) 2.找出勾股数的方法 这里找出的u,v是正整数且v>u.使用与1同样的方法可以证明u,v互质时,二者奇偶性不同. 这样我们编程时,用这个方法枚举,那就比不利用这样的性. 阅读全文
posted @ 2012-01-18 14:56 ChaunceyHao 阅读(983) 评论(0) 推荐(0)
摘要: 几日前在微博上和清华一博士讨论起一道数据结构选择题,我非常信心满满地给出了答案并且以为是对的,却发现和他 给的标准答案相去甚远,去wiki和NIST网站查了一下才知道,原来中国大陆教材中的定义和美国以及我国港澳台地区是完全不同的.本科时用的数据结构教 材虽然也是国外的,但是由于当时学习没有注意这些概念,之后就受考研时国内教材和考试的荼毒太深了. 满二叉树 国内定义 一棵深度为k且有2^k-1个结点的二叉树称为满二叉树. 严蔚敏《数据结构(C语言版)》124页 国内教材都采用了以上定义,且在考研、计算机等级考试、软考等国家行为的考试中采取了这一定义,认为所谓满二叉树就是每一层的结点数都达到最.. 阅读全文
posted @ 2012-01-18 14:55 ChaunceyHao 阅读(231) 评论(0) 推荐(0)
摘要: 1.静态全局变量 static声明的变量,可以作为静态全局变量,静态全局变量存储在系统的全局数据区,而非static变量如果是声明的变量存储在栈区,如果是通过new/malloc分配的则存储在堆区.关于堆和栈存储的区别,我会在后续文章跟进. 因为存储在全局数据区,所以这个变量是全局的,看以下代码: ?001002003004005006007008009010011012013014#include <iostream>using namespace std;static int item;void test1(){item++;}int main(){item = 0;test1 阅读全文
posted @ 2012-01-18 14:55 ChaunceyHao 阅读(231) 评论(0) 推荐(0)
摘要: 最近研究C++的数据类型和数据大小时发现,字节对齐实际上是一个C/C++程序员无法忽视的一个问题.所以进行了初步的研究. 1.为什么会出现内存对齐问题-从x86 CPU架构说起 相信绝大多数计算机系和软件学院的学生都学过计算机组成原理这门基础课程,所以不作入门引导了,没有相关背景的可以补补相关课程资料.常有人问我,既然是按字节寻址方式,为何会出现字节对齐问题呢?难道是内存不是连续的吗? 这个问题实际上和CPU与内存的连接方式有关,我们知道CPU会通过地址总线Address BUS与CPU连接用于寻址,用Data Bus数据总线连接用于获取数据,而内存通常是RAM构成的复杂阵列下面我们看看32位 阅读全文
posted @ 2012-01-18 14:51 ChaunceyHao 阅读(656) 评论(0) 推荐(0)
摘要: 最大子段和问题(Maximum Interval Sum) 经典的动态规划问题,几乎所有的算法教材都会提到.本文将分析最大子段和问题的几种不同效率的解法,以及最大子段和问题的扩展和运用. 一.问题描述 给定长度为n的整数序列,a[1...n], 求[1,n]某个子区间[i , j]使得a[i]+…+a[j]和最大.或者求出最大的这个和.例如(-2,11,-4,13,-5,2)的最大子段和为20,所求子区间为[2,4]. 二. 问题分析 1.穷举法 穷举应当是每个人都要学会的一种方式,这里实际上是要穷举所有的[1,n]之间的区间,所以我们用两重循环,可以很轻易地做到遍历所有子区间,一个表示... 阅读全文
posted @ 2012-01-18 14:44 ChaunceyHao 阅读(6665) 评论(0) 推荐(3)
摘要: 1. 为什么需要在类定义后面’}'后面加分号 c++的class定义后面可以接一个对象定义列表,当然这并不是一个很好的编程习惯,但c++是支持的. ?001002003class B{//成员变量和函数}b1,b2; 这个定义了类B,以及B的两个对象b1和b2. 2. 对象的初始化 如果没有给类定义构造函数,c++编译器会自动生成一个构造函数去初始化这些值,比如string成员会初始化为空字符串. 构造函数中的初始化列表是初始化阶段运行,而构造函数中的语句,则属于运算阶段,在这些语句运行前,实际上类的成员变量们就已经完成了初始化过程,构造函数内部对成员变量的改编只是一种赋值和运算行为. 阅读全文
posted @ 2012-01-18 14:43 ChaunceyHao 阅读(179) 评论(0) 推荐(0)
摘要: 2.2 模糊集合 表示方法 S 隶属函数 A 模糊集合 S(x) A中元素x的隶属度 A = { (x1, S(x1)), (x2, S(x2)), (x3, S(x3))} A = {S(x1)/x1 + S(x2)/x2 + S(x3)/x3} A = {S(x1), S(x2), S(x3)} 基本运算 a∨b = max{a,b); a∧b = min{a,b} 所有x 有S_A(x) <= S_B(x) 则B包含A 所有x 有S_A(x) == S_B(x) 在A等于B (A∪B)(x) = S_A(x) ∨ S_B(x) (A∩B)(x) = S_A... 阅读全文
posted @ 2012-01-18 14:40 ChaunceyHao 阅读(341) 评论(0) 推荐(0)
摘要: 我是看了两个matlab的例程 就直接开始用matlab写程序了。 所以说每个语言都有自己存在的意义和价值。matlab如果仅仅是提供了一些toolbox 是不会让这么多人在用的。 本来一个程序可以45min解决一组数据,结果我一个地方改动之后 可能4个小时都不一定解得完。 a. scoredMatchColumn = ScoringMatrix(intseq2,intseq1(outer-1)); b. for xxx = 1:n scoredMatchColumn(:,1) = ScoringMatrix(outer-1,:); end; a和b从一般意义上 时间复杂度是一样... 阅读全文
posted @ 2012-01-18 14:40 ChaunceyHao 阅读(140) 评论(0) 推荐(0)
摘要: 摘要 赛博空间自提出以来受到各界的密切关注。当前的赛博空间依托于 Internet,已经有了 迅猛的发展。本文主要介绍了赛博空间中信息获取的主要流程,即粗数据获取、数据结构化、 知识发现。并介绍了赛博空间中利用信息获取技术开展的几个成功应用。最后本文提出了如 何把握赛博空间中数据的本质,即流数据,进行信息获取的一些看法。 关键词 赛博空间;信息获取;流数据 Information Acquisition in Cyberspace Abstract Cyberspace has received wide attention since it was born. Current ... 阅读全文
posted @ 2012-01-18 14:39 ChaunceyHao 阅读(278) 评论(0) 推荐(0)
摘要: 电子商务中的数据仓库技术 Data Warehousing for E-Business W.H. Inmon 1 电子商务的基于和挑战 ERP CRM EAI,数据仓库工程 挑战:数据量、数据周转速度和多样性 电子商务通道:B2B B2C B2E(企业-员工) 第一代CRM侧重收集客户活动信息,下一代重点在于采用事务性方法来分析客户生存周期 从Web到仓库 2 CIF和电子商务 2.1CIF组成部分 CIF包括 因特网 企业网站 防火墙 企业操作型系统 粒度管理器 企业数据仓库 企业数据集市环境 探索环境(可发现新趋势) 可选存储环境 企业操作型数据存储环境 2.1.1 Web... 阅读全文
posted @ 2012-01-18 14:38 ChaunceyHao 阅读(923) 评论(0) 推荐(0)
摘要: lcov是建立在gcov之上的一个可以生成html代码覆盖率报告的工具,最近公司开始尝试引入代码覆盖来提高产品质量,lcov很好地满足了我们的需求,虽然lcov本身支持生成代码覆盖率的diff报告,但是跟我们的需求不太符合。 首先说一下我们的情况,我们有一套自动化回归测试集,可以看做是我们测试的全集。现在已经完成了基于这个回归测试集的代码覆盖率报告,这其中肯定有 某些行没有被覆盖到的,如何评估这些没有被测试过的行的风险呢?最开始是DEV跟QA一起review,由开发来评估这些没有被测试过的代码。最近提出了 一个新的思路,就是用Production的代码覆盖和本地回归测试的代码覆盖做一个diff 阅读全文
posted @ 2012-01-18 10:24 ChaunceyHao 阅读(1219) 评论(0) 推荐(0)
摘要: web.py是 一个轻量级的web framework,源代码只有7000多行(我自己用wc -l计算,肯定偏多了),用它来做个简单的站点很方便,上手容易。我在公司就用web.py做了我们自己的自动化测试管理工具,主要是管理自动化用例,展 示测试结果。最近遇到一个问题,我想做一个多选下拉框,但是等我做完以后发现结果跟我预想的不太一样。 我用的是web.py的web.form.Dropdown类来生成一个多选下拉框。只需在初始化dropdown的时候传一个multiple=”参数就OK了 form.Dropdown(‘adserver_id’, description=’Adse... 阅读全文
posted @ 2012-01-18 10:17 ChaunceyHao 阅读(417) 评论(0) 推荐(0)
摘要: 最近是跟代码覆盖干上了,今天下午测试一个功能的时候,路过另一段代码,发现一个问题,由此想到既然C++都要搞代码覆盖,为什么不搞搞python的呢?很容易就找到了coverage.py ,这个工具比较简单,我用easy_install安装的,非常顺利。由于python不需要编译链接,所以这个工具使用非常简单。coverage run [options] your_cmd [cmd options]。 假如原来的运行的命令是: fact_compare.py -d result 需要收集代码覆盖信息的话只需要这样运行 coverage run –branch fact_compare.py -d 阅读全文
posted @ 2012-01-18 10:16 ChaunceyHao 阅读(392) 评论(0) 推荐(0)