当前位置:首页 > 娱乐资讯 > 正文内容

将待解决问题分解为若干规模较小的同类问题

admin2周前 (06-05)娱乐资讯17

将待解决问题分解为若干规模较小的同类问题

[]

分治策略的核心在于将一个整体问题划分为若干个更小的、性质一致的子问题,这些子问题之间互不干扰。通过解决这些子问题分治算法在树的路径问题中的应用,我们能够找到原问题的解决方案。这实际上是一种通过分解目标来实现的程序算法将待解决问题分解为若干规模较小的同类问题,对于简单的问题将待解决问题分解为若干规模较小的同类问题,我们可以采用二分查找的方法来处理。

二、经典案例-汉诺塔

汉诺塔,亦称河内塔,源自印度一则古老的传说分治算法在树的路径问题中的应用,是一种经典的智力游戏。在创世之际,大梵天打造了三根金刚石柱,其中一根柱子上自下而上依次摆放着64片大小不一的黄金圆盘。按照大梵天的旨意,婆罗门需将这些圆盘从底部起,依照大小顺序移至另一根柱子上。同时明确,不得在小圆盘上对大圆盘进行扩展,且在三根柱子构成的框架内分治算法在树的路径问题中的应用,每次仅允许一个圆盘进行单次移动。

2.1 算法思路

将待解决问题分解为若干规模较小的同类问题 第1张

2.2 代码示例

需求:递归实现3阶汉诺塔的移动。

public class HanoiTower {
    public static void main(String[] args) {
        HanoiTower hanoi = new HanoiTower();
        // 3阶汉诺塔。
        hanoi.hanoi(3, 'A', 'B', 'C');
        // Direction:A--->C
        // Direction:A--->B
        // Direction:C--->B
        // Direction:A--->C
        // Direction:B--->A

        // Direction:B--->C
        // Direction:A--->C
    }
    /**
     * 使用分治算法,解决汉诺塔问题。
     *
     * @param n           盘子的数目
     * @param origin      源座
     * @param assist      辅助座
     * @param destination 目的座
     */
    public void hanoi(int n, char origin, char assist, char destination) {
        // 只有一个盘的时候,直接从 A->C 。
        if (1 == n) {
            move(origin, destination);
        } else {
            在存在n个及以上的情形下,我们可以将其视为由两部分组成:一是最底层的单个盘子;二是位于其上的所有盘子。
            首先,需将位于顶部的所有盘子从源座A移至目的座B,此过程中将借助辅助座C进行移动。
            hanoi((n - 1对起始点、目的地以及协助事项实施限制。
            // 2. 把最下边的盘 A->C 。
            move(origin, destination);
            将柱B上的所有盘子从B点(即当前源点)转移到C点(即当前目标点),在移动过程中需借助柱A(即当前辅助点)。
            hanoi(n - 1协助确定起点与终点。
        }
    }
    /**
     * 展示移动过程。
     *
     * @param origin      源座
     * @param destination 目的座
     */
    private void move(char origin, char destination) {
        System.out.println("Direction:" + origin + "--->" + destination);
    }
}

三、结束语

“-------怕什么真理无穷,进一寸有一寸的欢喜。”

微信公众号搜索:饺子泡牛奶。

加入微信交流群:************ ,请猛戳这里→点击入群

扫描二维码推送至手机访问。

版权声明:本文由全景资讯网发布,如需转载请注明出处。

本文链接:https://qjnew.com/post/4339.html

分享给朋友:

“将待解决问题分解为若干规模较小的同类问题” 的相关文章

《三体》电视剧版首播,原著粉:还原度超高

《三体》电视剧版首播,原著粉:还原度超高

当《三体》电视剧版首播的那一刻,原著粉们仿佛看到了心中那个神秘而宏大的宇宙世界在荧幕上缓缓展开,那一瞬间,激动与感慨之情如潮水般涌上心头,纷纷感慨:还原度超高!从一开始的片头,那简洁而富有震撼力的画面,仿佛将我们直接带入了三体文明的神秘面纱之下。那深邃的宇宙星空,闪烁着奇异光芒的星球,以及那若隐若现...

古装剧《风起洛阳2》官宣!原班人马回归

古装剧《风起洛阳2》官宣!原班人马回归

古装剧《风起洛阳》以其精彩的剧情、精湛的演技和独特的盛唐风貌,在观众心中留下了深刻的印象。如今,《风起洛阳 2》正式官宣,原班人马悉数回归,这无疑是让众多剧迷们兴奋不已的重磅消息,也预示着一段新的传奇即将在荧幕上展开。原班人马的回归,是《风起洛阳 2》最令人期待的亮点之一。从主演到配角,每一位演员都...

《中餐厅8》开录!黄晓明再当店长,网友:求放过

《中餐厅8》开录!黄晓明再当店长,网友:求放过

近日,备受期待的《中餐厅 8》正式开录,曾经的“店长专业户”黄晓明再度回归,然而这一次,网友们却纷纷表示:求放过。黄晓明,这位在综艺界有着独特影响力的明星,自《中餐厅》系列节目开播以来,就一直与店长这个角色紧密相连。他那强势的风格、偶尔的“霸气”举动,以及那句经典的“我不要你觉得,我要我觉得”,都成...

周杰伦新歌《时光机》上线!歌词暗藏彩蛋

周杰伦新歌《时光机》上线!歌词暗藏彩蛋

当那熟悉的旋律再次响起,仿佛时光的齿轮开始缓缓转动,周杰伦的新歌《时光机》正式上线啦!这不仅仅是一首歌曲,更是一次穿越时光的奇妙之旅,而那歌词中暗藏的彩蛋,更是让乐迷们如痴如醉,纷纷在音乐的海洋中探寻着那些隐藏的秘密。从歌曲的开篇,那悠扬的旋律就仿佛带着我们穿越到了过去的某个角落。周杰伦独特的嗓音,...

蔡依林演唱会官宣!票价引争议:太贵了吧

蔡依林演唱会官宣!票价引争议:太贵了吧

当那激动人心的消息传来,蔡依林演唱会官宣的那一刻,仿佛整个乐坛都为之震颤。粉丝们翘首以盼的时刻终于降临,然而随之而来的,却是票价引发的激烈争议。蔡依林,这位华语乐坛的天后,她的每一场演唱会都堪称一场视听盛宴,无数人为之倾倒。此次演唱会的官宣,无疑是给广大歌迷们送上了一份巨大的惊喜。当看到票价的那一刻...

华晨宇新专辑预售破亿!粉丝:哥哥太牛了

华晨宇新专辑预售破亿!粉丝:哥哥太牛了

在华语乐坛的浩瀚星空中,华晨宇如同一颗璀璨的新星,不断绽放着耀眼的光芒。近日,他的新专辑预售破亿的消息如同一颗重磅,在粉丝圈和音乐界掀起了巨大的波澜。这一惊人的成绩,不仅是对华晨宇音乐才华的高度认可,更是粉丝们对他无限热爱和支持的生动体现。华晨宇以其独特的音乐风格和强烈的个人魅力,在短短几年间迅速崛...