【算法分析】煎饼问题(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 中国大陆”许可协议授权。


分享到:

目录
相关文章
|
7天前
|
JSON 监控 算法
员工上网行为监控:利用Scala编写数据处理和分析算法
企业在数字化时代利用Scala进行员工上网行为监控,以确保合规和网络安全。通过Scala的数据处理和分析能力,读取CSV日志数据转换为DataFrame,分析员工行为,如统计最常访问网站。此外,还展示了将监控数据以JSON格式提交至公司网站的函数,实现实时信息更新与安全防护。
34 5
|
2天前
|
机器学习/深度学习 算法 数据可视化
Matlab决策树、模糊C-均值聚类算法分析高校教师职称学历评分可视化
Matlab决策树、模糊C-均值聚类算法分析高校教师职称学历评分可视化
10 0
|
3天前
|
算法 搜索推荐 数据挖掘
MATLAB模糊C均值聚类FCM改进的推荐系统协同过滤算法分析MovieLens电影数据集
MATLAB模糊C均值聚类FCM改进的推荐系统协同过滤算法分析MovieLens电影数据集
11 0
|
3天前
|
算法 数据可视化 数据挖掘
数据分享|R语言改进的K-MEANS(K-均值)聚类算法分析股票盈利能力和可视化
数据分享|R语言改进的K-MEANS(K-均值)聚类算法分析股票盈利能力和可视化
|
3天前
|
数据采集 存储 算法
数据分享|Weka数据挖掘Apriori关联规则算法分析用户网购数据
数据分享|Weka数据挖掘Apriori关联规则算法分析用户网购数据
13 2
|
6天前
|
机器学习/深度学习 数据采集 算法
共享单车需求量数据用CART决策树、随机森林以及XGBOOST算法登记分类及影响因素分析
共享单车需求量数据用CART决策树、随机森林以及XGBOOST算法登记分类及影响因素分析
12 0
|
7天前
|
移动开发 算法 数据可视化
数据分享|Spss Modeler关联规则Apriori模型、Carma算法分析超市顾客购买商品数据挖掘实例
数据分享|Spss Modeler关联规则Apriori模型、Carma算法分析超市顾客购买商品数据挖掘实例
|
8天前
|
算法 数据可视化 搜索推荐
数据分享|Python用Apriori算法关联规则分析亚马逊购买书籍关联推荐客户和网络图可视化
数据分享|Python用Apriori算法关联规则分析亚马逊购买书籍关联推荐客户和网络图可视化
30 11
|
8天前
|
算法 数据可视化 大数据
圆堆图circle packing算法可视化分析电商平台网红零食销量采集数据
圆堆图circle packing算法可视化分析电商平台网红零食销量采集数据
36 13
|
9天前
|
算法 数据可视化 Python
R语言中使用多重聚合预测算法(MAPA)进行时间序列分析
R语言中使用多重聚合预测算法(MAPA)进行时间序列分析
15 0