社区
数据结构与算法
帖子详情
请教生成所有排列的算法,大家谁能证明一下
ksharp2008
2008-04-09 07:39:10
就是离散数学及其应用里的那种按字典序生成排列,谁能证明一下啊。
具体描述是,对A1,A2,...AN 寻找第一个Aj<A(j+1) 和A(j+1)>A(j+2)>A(j+3)>....A(n).寻找J+1到N中最小的大于Aj的元素,然后交换后对A(j+1)....An按升序排序。
请教大侠一个证明
...全文
179
4
打赏
收藏
请教生成所有排列的算法,大家谁能证明一下
就是离散数学及其应用里的那种按字典序生成排列,谁能证明一下啊。 具体描述是,对A1,A2,...AN 寻找第一个AjA(j+2)>A(j+3)>....A(n).寻找J+1到N中最小的大于Aj的元素,然后交换后对A(j+1)....An按升序排序。 请教大侠一个证明
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ksharp2008
2008-04-10
打赏
举报
回复
思维很紧密
ksharp2008
2008-04-10
打赏
举报
回复
又见大王,大王哪儿高就啊。真的很强啊
大王派我去巡山
2008-04-10
打赏
举报
回复
假设n个元素a(1)<a(2)<……<a(n),
最开始的序列一定是从a(1)a(2)……a(n)这个最小序列开始的(一定注意这一点,否则不能保证算法的正确性),
到最后一个序列也是最大的a(n)a(n-1)……a(2)a(1)结束。
按照你说的算法执行过程,任取中间两个相邻序列S[i]和S[i+1]
需要证明两点才能保证这个过程是升序排列同时有没有遗漏:
1.后面这个序列大于前面的相邻序列,即S[i+1]>S[i];
2.后面的这个序列S[i+1]是“刚刚好大于”S[i]的序列。换句话说,S[i+1]是所有大于S[i]的序列中最小的那个。
关于命题1:
和整数类似,我们把序列看成从左往右由高位到低位,高位上被换上了一个更大的数字,显然新序列更大一些。
关于命题2:
假设还存在一个序列S[k]使得S[i]<S[k]<S[i+1],由于S[i]和S[i+1]中的1~j-1位完全相同,
所以S[k]的前1~j-1位必定也是和S[i]中相同的,只需研究j~n这些低位数字就可以比较出三个序列的大小。
将S[i]中的第j位数字记作a[i,j],S[i+1]中的第j位数字记作a[i+1,j],S[k]中的第j位数字记作a[k,j],
由于1~j-1位完全相同,且S[i]<S[k]<S[i+1],显然有a[i,j]<=a[k,j]<=a[i+1,j]。
又因为a[i+1,j]是“J+1到N中最小的大于Aj的元素”,那显然只能有a[k,j]=a[i+1,j]。
于是比较S[k]与S[i+1]两个序列大小的问题,又转换成比较j+1~n这些低位数字的大小问题。
S[k]与S[i+1]前1~j位都相同,由于S[i+1]后面的元素全都升序排列,所以只能有S[i+1]<=S[k]。
这就得出了矛盾,因而前面的假设不可能成立,命题得证。
medie2005
2008-04-10
打赏
举报
回复
应该是很显然的事实啊,不需要证明吧。
实质上就是进位规则,只是我们平时用10进制用惯了,不太容易看出来而已。
数的进位规则:
1):找最低的可增大的位k,增加之。
2):将比k位低的位全清零。
比如:
0
99,显然,红色的0是最低的可增加的位,增加之,变为
1
99;然后,将十位和个位清零,得到了100.
11月25日学习总结.pdf
11月25日学习总结
离散数学期末复习包(含试卷)
离散数学复习包
【人工智能实验】A*
算法
求解8数码问题
1、画出A*
算法
求解N数码问题的流程图。根据A*
算法
的实验原理,;这样估价函数f(n)在g(n)一定的情况下,会或多或少的受距离估计值h(n)的制约,节点距目标点近,h值小,f值相对就小,能保证最短路的搜索向终点的方向进行,因此f是根据需要找到一条最小代价路径的观点来估算节点的。设计A*
算法
的流程图如图4.1.1所示,按照流程图编写伪代码,进而编写完整的程序。其中OPEN表保存所有已
生成
而未考察的节点,CLOSED表中记录已访问过的节点。
java
算法
实现 三维装箱 贪婪
算法
算法
相关视频讲解:如何在命令行存文件Python性能这么差,为什么会在AI中大量使用数据结构与
算法
-栈-Go代码演示版实现三维装箱贪婪
算法
流程图 #render_6_511287191-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size...
DFS
算法
解决迷宫路径
生成
上的应用
本课程设计的主要内容是迷宫问题,该问题主要涉及如下几个方面:①实现任意指定迷宫的大小,并能够随机产生可通和障碍方格;②实现任意指定迷宫游戏的起始位置与目标位置;③实现对迷宫地图的编辑功能,即游戏玩家可任意修改当前迷宫的可通和障碍方格;④实现用文件存储迷宫信息,从文件中读取迷宫信息,然后寻找路径;⑤实现对迷宫所有路径的求解;⑥实现对迷宫最短路径的求解; 在请求用户输入迷宫的尺寸(宽和高)、游戏起点坐标信息、游戏终点位置信息之后,基于这些基本信息,采用深度优先搜索(DFS,Depth-First-Search
数据结构与算法
33,027
社区成员
35,335
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章