自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 特殊排列的算法

全排列是集合中全部元素的排列,并且每一个排列中的元素都不会重复。实际应用中,还会遇到各种特殊的排列,例如集合中一部分元素的排列,允许元素重复的排列等。现在来看一看产生各种特殊排列的算法。 递归形式的回溯算法如下://全排列(递归)//输入:排列元素个数n//输出:n个元素的全体排列#include#include using namespace std;

2016-01-13 10:24:03 703

原创 全排列的算法(八)——序数法

全排列的生成算法(八)——序数法 n个元素的全排列有n!个,如果将排列按顺序编号,并能够按照某种方法建立起每一个序号与一个排列之间的对应关系,那么就可以根据序号确定排列,反过来也可以根据排列确定它的序号。根据排列的序号生成对应排列的方法就称为序数法。通常,我们使用的计数法是十进制数。十进制数的位权是10,也就是逢十进一。另外还有二进制、八进制和十六进制等,它们的位权分别是2、8和16。

2015-03-12 09:19:18 7635

原创 全排列的算法(七)——递归算法

全排列的生成算法(七)——递归算法 当排列采用递归方式定义时,可以直接从他的定义出发来生成全体排列。如果用P表示n个元素的排列,而Pi表示不包含元素i的排列,(i)Pi表示在排列Pi前加上前缀i的排列,那么,n个元素的排列可递归定义为:如果n=1,则排列P只有一个元素i如果n>1,则排列P由排列(i)Pi构成(i=1、2、....、n-1)。根据定义,容易看出如果已经生成了

2015-03-02 11:11:51 1141

原创 全排列的算法(六)——回溯法

全排列的生成算法(六)——回溯法回溯法通常是构造一颗生成树。以3个元素为例;树的节点数据可取值是1、2、3。如果某个节点为0,则表示尚未取值。初始状态是(0,0,0),第1个元素值可以分别挑选1,2,3,因此扩展出3个子结点。用相同方法找出这些结点的第2个元素的可能值,如此反复进行,一旦出现新结点的3个数据全非零,那就找到了一种全排列方案。当尝试了所有可能方案,即获得了问题的解答。回溯

2015-02-24 09:41:27 4566

原创 全排列的算法(五)——邻位互换法

5.邻位互换法是由Johnson-Trotter首先提出。如果已知n-1个元素的排列,将n插入到排列的不同位置,就得到了n个元素的排列。用这种方法可以产生出任意n个元素的排列。但是,为了产生n个元素的排列,我们必须知道并存储所有n-1个元素的排列,然后才能产生出所有n阶排列,这是一个很大的缺点。该算法的实质是交换排列中某两个相邻的元素来产生一个新的排列。按照下面所说的算法就可以从原始排列开

2015-02-17 16:13:38 8111

原创 全排列的算法(四)——n进位法

n进位法这个算法是将初始排列012……(n-1)作为一个n进制数,然后对它累加1,从而生成全体排列。这个算法比较简单,但是在累加过程中,会出现重复元素,所以需要将有重复元素的排列删除。这是这个算法的缺点。从一个排列生成一个新的排列的算法如下:第一步:在排列的第n-1 位累加1。第二步:如果其和大于n-1,就进位,发生连续进位就连续进位直至不再发生进位为止。无进位继续。第三步:检

2015-02-08 11:09:09 1797

原创 全排列的算法(三)——递减进位法

在递增进位法中,逆序序列最低位是逢2进1,进位频繁,这是它的一个缺点。排列的逆序序列q0,q1,……,qn-1中记录的是每个排列的元素左边比该元素大的元素个数,如果将它改成记录每个元素右边比该元素小的元素个数,就得到了一个新的序列a0,a1,……,ai,……,an-1,我们称它为中介数序列,它具有与逆序序列相似的性质:a0=0,0≤a1≤1,0≤a2≤2,……,0≤ai≤i,……0≤an-1≤

2015-02-02 14:30:02 2083

原创 全排列的算法(二)——递增进位法

2.递增进位制数法集合{1、2、……n-1、n}的全排列中,只有原始排列12……n的各个元素的顺序是自然顺序,其余排列的元素的顺序都要改变。为了说明元素间顺序的改变,引入了排列的逆序的概念,它在行列式理论中起着重要的作用。设集合{1,2,……,n}的一个排列是 p0p1……pn-1,如果对于任意的k和l(0≤k,l≤n-1),当kpl,则称数对(pk,pl)是排列 p0p1……pn-1 的

2015-01-22 16:10:01 1875

原创 排列的算法(一)——字典序算法

从n个不同元素中取出n个元素的排列,称为n个不同元素的全排列。全排列的生成算法就是对于给定的元素集合,用有效的方法将所有可能的全排列无重复无遗漏地列举出来。

2015-01-14 10:49:53 8718

C++实现十进制大整数类

大整数用数组按位存储,动态分配存储空间,长度不受限制(硬件决定),应用简单。

2009-07-16

空空如也

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

TA关注的人

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