03 2011 档案
摘要:题目:给定一个数字,和一个范围,产生所有在范围内的不重复的数字之和,和等于给定的数字。 举例:给数字12,范围3-6。可以产生以下5个组合: 1、3+3+3+3 2、3+3+6 3、3+4+5 4、4+4+4 5、6+6 要求给出最快实现,并且是非递归。 这是某人给我出的一道算法题。经过考虑,给出了解法。最快的谈不上(算法无止境、人外有人),没有用递归。 还是以题目的例子说明,数字12,范围3-6。给出了5种组合。将这5种组合改写一下 3+3+3+3=3*4+4*0+5*0+6*0 记作:(4,0,0,0) 3+3+6=3*2+4*0+5*0+6*1 记作:(2,0,0,1) 3+4+5=3.
阅读全文
摘要:近日,在和他人闲暇无事的时候,进行篮球投篮比赛。由于本人的投篮命中率比较低,而他的投篮命中率比较高。因此,定了一个规则。采用积分制,初始积分为1分。他投篮,每投中一个球,积分加1分,继续投篮;投不中,换我投篮。我投篮,每投中一个球,积分减1分,继续投篮;投不中,换他投篮。若积分到11分,他获胜;若积分减到0分,我获胜。每局由他先投篮。 在进行若干局的比赛后,各有胜负。提出了一个问题:他获胜的概率是多少? 把问题数字化 A和B两人进行投篮,A的命中率为70%,B的命中率为30%。初始积分为1分,每人投中继续投,投不中换人投。A投中积分加1分,B投中积分减1分。积分为11分时,A获胜;积分为0分.
阅读全文
摘要:研究文本比较算法有一段时间。看到Primal-Dual算法,作为不同的求LCS算法,介绍如下。 原文在《An almost-linear time and linear space algorithm for the longest common subsequence problem》 比较文本: A=a1a2a3……am B=b1b2b3……bn 定义集合P={(i,j)|ai=bj} 则P={p1,p2,……,pl} pk表示(ik,jk),1≤k≤l 定义三个比较运算符 ①“∠” px∠py 当且仅当 ix<iy,jx<jy ②“⊿” px⊿py 当且仅当 ix≤iy,jx
阅读全文
摘要:研究文本比较算法已经一段时间了。把思路重新理了理。 在“文本比较算法Ⅳ——Nakatsu算法”中提到“对角线上的数字就是最长公共子序列的下标”。 在“文本比较算法Ⅶ——线性空间求最长公共子序列的Nakatsu算法”中提到“每行最左边不为V的数字就是最长公共子序列的下标”。 以上两个结论,网友Sumtec都提出了质疑,并提出了反例。经过本人的验算,Sumtec是正确的,我的文章有问题。 不过,不能说Nakatsu算法有问题。在“文本比较算法Ⅶ——线性空间求最长公共子序列的Nakatsu算法”中的前半部分详细阐述了Nakatsu算法的计算过程,这个是没有问题的。只是本人急于将其优化成线性空间,而.
阅读全文
摘要:在参阅《A Longest Common Subsequence Algorithm Suitable for Similar Text Strings》(Narao Nakatsu,Yahiko Kambayashi,Shuzo Yajima著)后。发现该算法可以利用线性空间求出最长公共子序列。该算法的时间占用O(n(m-p+1)),p为最长公共子序列的长度。 字符串A和字符串B,计算LCS(A,B) 定义一:设M=Len(A),N=Len(B),不妨设M≤N。 定义二:A=a1a2……aM,表示A是由a1a2……aM这M个字符组成 B=b1b2……bN,表示B是由b1b2……bN这N个字.
阅读全文
摘要:判断一个整数x是否是2的N次方。 方法之一是判断x & (x - 1)==0。若为True,则x是2的N次方;若为False,则x不是2的N次方。 有人质疑,他证明了“2的n次方一定符合这个条件”, 却并没有证明“符合这个条件的一定是2的n次方”呀!更没有证明“不符合条件的一定不是2的n次方”呀。 现在,从两个方面来证明这个方法的正确性 证明之前,先给出一些定义 &运算的定义:A & B 表示将A和B转化为二进制,然后按照对位&运算。 例如:17 & 9 100012 =1710 & 1012 =910 ---------------------
阅读全文