- 博客(20)
- 资源 (5)
- 收藏
- 关注
原创 集合划分的词典序生成
集合划分的词典序生成 集合划分是指:将一个集合划分为几个无交集的子集合。比如,对集合{1,2,3},它的集合划分有: 123,12|3,13|2,1|23,1|2|3
2007-12-24 17:05:00
943
原创 词典序法生成出栈序列
词典序法生成出栈序列 本文用词典序产生1,2,...,n的所有出栈序列,本质上,给出的算法也生成了n节点的所有树. 关于出栈序列与 catalan 0-1序列的关系,在我blog中的“出栈序列与catalan 0-1序列”一文中,已经阐述地很清楚了,由那里的知识,我们知道:生成出栈序列,就是生成catalan 0-1序列。我们规定:在词典序下,0的序数大于
2007-12-19 21:24:00
1662
原创 整数m-划分的词典序法生成
整数m-划分的词典序生成 在“词典序法生成整数划分”一文中,给出了整数划分的词典序生成算法的实现,那里讨论的是无限制的划分。在实际中,经常需要产生划分部分固定的算法,我们不妨称“n的m部分划分”为:“n的m-划分”。例如,产生11的4-划分,即产生: 8 1 1 1,7 2 1 1,6 3 1 1 ,5 4 1 1,6 2 2 1,5
2007-12-19 16:47:00
1026
原创 词典序法生成整数划分
词典序法生成整数划分 词典序法是生成各种组合模式的通用方法。对一些组合模式,人们已经找到简单的格雷通路的构造法则,词典序法与这样的基于格雷通路的方法比起来,速度较慢。因此,在要生成的组合模式存在简单的格雷通路的构造的情形下,一般不用词典序生成算法。但对另一些组合模式,不存在或者目前尚未发现简单的格雷通路的构造法则,这个时候,我们就可以考虑用词典序法来生成需要的组合模式
2007-12-18 17:46:00
963
1
原创 TAOCP V4.F2 格雷码(3)
TAOCP V4.F2 格雷码(3) 本文分析书中算法L。 算法L描述: 分析: 算法的关键是“焦点指针”数组 f[]。 我们以前已经知道:格雷码的生成,可以由序列1,2,3,...,n 经函数g()就可以得到。算法L虽并不明显的出现1,2,3,...,n,但是“焦点指针”数组已经隐式表示了自然数序列1,
2007-11-16 11:15:00
832
原创 一种新的全排列生成算法
一种新的全排列生成算法 算法原理: 对集合S={a1,a2,...,an},假设已经知道前n-1个元的全排列,那么,这n个元素的全排列{p1,p2,...,p(n-1)!},可以这样生成 :用各种可能将an插入pi中,由此,得到集合S的全排列。 为什么这样操作能得到集合S的全排列?因为每个pi的可能插入位置为n个,因此总数是n!,而且由于每个pi是不同的,因此,得
2007-11-10 11:45:00
4970
7
原创 TAOCP V4.F2 格雷码(2)
TAOCP V4.F2 格雷码(2) 九链环问题(Chinese ring puzzle)。1、预备知识,关于异或 若F=a0a1...an-2an-1,那么,若发生aj=1-aj (02、知识浏览 1、为什么类型(b)的移动,将k变成k(2j+1-1)? 设环的状态为(an-1an-2...a1a0)
2007-11-01 18:29:00
897
原创 TAOCP V4.F2 格雷码(1)
TAOCP V4.F2 格雷码(1)1、预备知识:关于异或 第四卷的第一册是关于布尔代数的,不过还未出版。而作者在描述格雷码的时候,异或出现的次数很频繁,先了解一点异或的性质有好处。性质:1、ab=ba2、(ab)c=a(bc)3、abca=bc4、a0=a5、a1:将a的二进制表示的最后1位取补
2007-11-01 11:55:00
909
转载 出栈序列与Catalan 0-1序列
出栈序列与Catalan 0-1序列设集合 N 中的元素按次序1,2,3,...,n 入栈,其所有不同的出栈序列的集合为Sn,则|Sn|=。1、结果证明: 定义1、 集合 N={1,2,3,...,n}中的元素按一定次序入栈,其每个出栈序列是 N 的一个元排列,若 N 的两个元排列不同,则称为两个不同的出栈序列(栈序列),记栈序列集为 Sn。 定义2、 n个
2007-10-06 16:43:00
1975
原创 高效的排列生成算法
本算法与上一篇的组合生成算法是一体的,也是在维普上看到的。我用C++实现如下:#include cstdlib>#include iostream>#include iterator>using namespace std; void Permutation( int n )...{ int *A=new int[n+1], *B=new int[n+1], i=
2007-10-05 21:07:00
1075
1
原创 速度暴快的组合生成算法
近日在维普数据库里看资料,偶然发现了一个介绍组合生成算法的文章,照着算法流程,自己写了一下,发现速度果然不错。C++实现代码:#include cstdlib>#include iostream>using namespace std;void combination( int n, int m )...{ int *A=new int[n+1];
2007-10-05 17:41:00
4353
2
转载 一种约束排列的生成算法
一种约束排列的生成算法 陈兆斗、柯爱荣 《工程数学学报》本文所述的约束排列是指:m个非负整数所构成的排列a1a2...am,满足约束条件:a11,a
2007-10-04 17:53:00
1884
转载 24点游戏及其算法
24点游戏题解 by starfish [说明:此文改编自我写的一篇解题报告,原题是某年国家集训队组队赛题目] 问题描述 80年代全世界流行一种数字游戏,在中国我们把这种游戏称为“24点”。现在我们 把这个有趣的游戏推广一下:您作为游戏者将得到6个不同的自然数作为操作数, 以及另外一个自然数作为理想目标数
2007-10-04 12:02:00
7340
2
转载 MD5算法介绍及实现
md5的全称是message-digest algorithm 5(信息-摘要算法),在90年代初由mit laboratory for computer science和rsa data security inc的ronald l. rivest开发出来,经md2、md3和md4发展而来。它的作用是让大容量信息在用数字签名软件签署私人密匙前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变
2007-10-03 21:12:00
1132
转载 数学之美 系列 12 - 余弦定理和新闻的分类
余弦定理和新闻的分类 吴军,Google 研究员 余弦定理和新闻的分类似乎是两件八杆子打不着的事,但是它们确有紧密的联系。具体说,新闻的分类很大程度上依靠余弦定理。 Google 的新闻是自动分类和整理的。所谓新闻的分类无非是要把相似的新闻放到一类中。计算机其实读不懂新闻,它只能快速计算。这就要求我们设计一个算法来算出任意两篇新闻的相似性。为了做到这一点,我们
2007-10-02 12:03:00
625
转载 数学之美 系列十三 信息指纹及其应用
信息指纹及其应用吴军,Google 研究员 任何一段信息文字,都可以对应一个不太长的随机数,作为区别它和其它信息的指纹(Fingerprint)。只要算法设计的好,任何两段信息的指纹都很难重复,就如同人类的指纹一样。信息指纹在加密、信息压缩和处理中有着广泛的应用。 我们在图论和网络爬虫一文中提到,为了防止重复下载同一个网页,我们需要在哈希表中纪录已经访问过
2007-10-02 11:57:00
613
转载 对google黑板报Bloom Filter的补充
1. 黑板报上说:对于每一个电子邮件地址 X,我们用八个不同的随机数产生器(F1,F2, …,F8) 产生八个信息指纹(f1, f2, …, f8)。再用一个随机数产生器 G 把这八个信息指纹映射到 1 到十六亿中的八个自然数 g1, g2, …,g8。其实这句话有点绕人, 本质上来说, 就是有8个不同的Hash 函数, 能把这个 X 映射到八个自然数. (实际上对于好的
2007-10-02 11:37:00
1536
转载 Bloom Filter概念和原理
Bloom Filter概念和原理 ------转自焦萌blog Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。Bloom Filter的这种高效是有一定代价的:在判断一个元素是否属于某个集合时,有可能会把不属于这个集合的元素误认为属于这个集合(f
2007-10-02 11:25:00
2227
转载 布隆过滤器(Bloom Filter)
布隆过滤器 ——转自google黑板报 在日常生活中,包括在设计计算机软件时,我们经常要判断一个元素是否在一个集合中。比如在字处理软件中,需要检查一个英语单词是否拼写正确(也就是要判断它是否在已知的字典中);在 FBI,一个嫌疑人的名字是否已经在嫌疑名单上;在网络爬虫里,一个网址是否被
2007-10-02 10:50:00
869
原创 与二分分治有关的几个函数
一、二进制1位计数 定义:n为一正整数,n的二进制表示中的位为1的个数记为γn; [1,n)区间的数的二进制表示中的位为1的总数记为Ρn; 一般的,Pn=n*logn+O(n), 若n=2^t,则:Pn=t*(2^(t-1))。 现在考虑如何快速计算Ρn。 1:递归解决方案 对Ρn,有递归:
2007-08-11 22:00:00
711
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人