【算法分析】煎饼问题(Pan Cake Problem)

简介: 作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ 今天继续看《编程之美》的第三个问题。 问题的描述就不多说了,这是一个典型的离散数学问题(这个链接有非常详细的问题描述),喜欢图案的童鞋(比如我),可以参看CMU的一个讲义。

作者:gnuhpc
出处:http://www.cnblogs.com/gnuhpc/

今天继续看《编程之美》的第三个问题。

问题的描述就不多说了,这是一个典型的离散数学问题(这个链接有非常详细的问题描述),喜欢图案的童鞋(比如我),可以参看CMU的一个讲义

从1975年比尔盖茨和他的导师发表的文章:Gates, W. and Papadimitriou, C. "Bounds for Sorting by Prefix Reversal." Discrete Mathematics. 27, 47~57, 1979. 开始,二三十年间不断有人在讨论。现在维基百科中对这个问题有两个词条pancake sortingprefix reversal

书中的初步解析大体思路自然是没有一点问题,只是得出的上界结论有点不正确,这个直接影响了书中递归退出条件:“我们至多需要 2(n-1)次翻转就可以把所有烙饼排好序”。这个数值应该是2n-3,如下推理:我们知道将最大尺寸的放在最下边最多需要2次,此时取这n个中的n-2个(剩下那个最小的和次最小的),将这个n-2个煎饼按由小到大放置好最多需要2(n-2)次,此时还有两个,最多只需要1次就可以完成整个煎饼的排序。所以,上限次数为2(n-2)+1=2n-3。

当然这个是上限,会有更优化的解法,于是书中就给出了一些讨论,说真的我没太看懂,分析相对于冗长的代码实在太少……

这篇论文给了一个所谓断点的思路,个人觉得不错。文中后来提到比尔盖茨的论文使用的演算法,进而引出了DNA序列问题,使得这个游戏一样的问题焕发出了新的光彩。

另外,值得注意的是现在所谓“煎饼数”(书中有定义)的计算已经到了n=19的地步,以下两个独立研究可以作为参考,我对偏向纯数学的就不是很geek,没太研究了。

http://arxiv.org/abs/0901.3119 http://kam.mff.cuni.cz/~cibulka/pancakes/

http://www.springerlink.com/content/l1650023g3443852/

我觉得新版的《编程之美》要是更新这个题的话,可以多参阅这个链接。

 

作者:gnuhpc
出处:http://www.cnblogs.com/gnuhpc/


               作者:gnuhpc
               出处:http://www.cnblogs.com/gnuhpc/
               除非另有声明,本网站采用知识共享“署名 2.5 中国大陆”许可协议授权。


分享到:

目录
相关文章
|
27天前
|
机器学习/深度学习 人工智能 监控
AI算法分析,智慧城管AI智能识别系统源码
AI视频分析技术应用于智慧城管系统,通过监控摄像头实时识别违法行为,如违规摆摊、垃圾、违章停车等,实现非现场执法和预警。算法平台检测街面秩序(出店、游商、机动车、占道)和市容环境(垃圾、晾晒、垃圾桶、路面不洁、漂浮物、乱堆物料),助力及时处理问题,提升城市管理效率。
AI算法分析,智慧城管AI智能识别系统源码
|
30天前
|
算法
经典控制算法——PID算法原理分析及优化
这篇文章介绍了PID控制算法,这是一种广泛应用的控制策略,具有简单、鲁棒性强的特点。PID通过比例、积分和微分三个部分调整控制量,以减少系统误差。文章提到了在大学智能汽车竞赛中的应用,并详细解释了PID的基本原理和数学表达式。接着,讨论了数字PID的实现,包括位置式、增量式和步进式,以及它们各自的优缺点。最后,文章介绍了PID的优化方法,如积分饱和处理和微分项优化,以及串级PID在电机控制中的应用。整个内容旨在帮助读者理解PID控制的原理和实际运用。
72 1
|
1月前
|
算法 调度
【算法设计与分析】— —基础概念题(one)可作为日常联系或期末复习
【算法设计与分析】— —基础概念题(one)可作为日常联系或期末复习
47 1
|
1月前
|
算法 C语言 C++
嵌入式PID算法理论+实践分析
嵌入式PID算法理论+实践分析
23 0
|
2月前
|
编解码 算法 定位技术
GEE时序——利用sentinel-2(哨兵-2)数据进行地表物候学分析(时间序列平滑法估算和非平滑算法代码)
GEE时序——利用sentinel-2(哨兵-2)数据进行地表物候学分析(时间序列平滑法估算和非平滑算法代码)
70 3
|
1月前
|
算法
关联规则分析(Apriori算法2
关联规则分析(Apriori算法2
34 0
|
2天前
|
算法 数据可视化 Python
Python中LARS和Lasso回归之最小角算法Lars分析波士顿住房数据实例
Python中LARS和Lasso回归之最小角算法Lars分析波士顿住房数据实例
10 0
|
2天前
|
算法 定位技术 Windows
R语言最大流最小割定理和最短路径算法分析交通网络流量拥堵问题
R语言最大流最小割定理和最短路径算法分析交通网络流量拥堵问题
10 4
|
25天前
|
算法
TOP-K问题和向上调整算法和向下调整算法的时间复杂度问题的分析
TOP-K问题和向上调整算法和向下调整算法的时间复杂度问题的分析
17 1
|
27天前
|
算法
PID算法原理分析及优化
这篇文章介绍了PID控制方法,一种广泛应用于机电、冶金等行业的经典控制算法。PID通过比例、积分、微分三个部分调整控制量,以适应系统偏差。文章讨论了比例调节对系统响应的直接影响,积分调节如何消除稳态误差,以及微分调节如何减少超调。还提到了数字PID的实现,包括位置式、增量式和步进式,并探讨了积分饱和和微分项的优化策略。最后,文章简述了串级PID在电机控制中的应用,并强调了PID控制的灵活性和实用性。
38 1