• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 70  文章 - 160  trackbacks - 0

            公告:
            知識(shí)共享許可協(xié)議
            本博客采用知識(shí)共享署名 2.5 中國(guó)大陸許可協(xié)議進(jìn)行許可。本博客版權(quán)歸作者所有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意不得隨機(jī)刪除文章任何內(nèi)容,且在文章頁(yè)面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利。 具體操作方式可參考此處。如您有任何疑問(wèn)或者授權(quán)方面的協(xié)商,請(qǐng)給我留言。

            常用鏈接

            留言簿(8)

            隨筆檔案

            文章檔案

            搜索

            •  

            積分與排名

            • 積分 - 179352
            • 排名 - 147

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

             



            http://www.wutianqi.com/?p=1157



            集合A的冪集是由集合A的所有子集所組成的的集合。

             

            如:A={1,2,3},則A的冪集P(A)={{1,2,3},{1,2},{1,3},{1},{2,3},{2},{3},{ }}。

            求一個(gè)集合的冪集就是求一個(gè)集合的所有的子集,方法有窮舉法,分治法,回溯等,這里主要介紹一下回溯法

            回溯法是設(shè)計(jì)遞歸過(guò)程的一種重要的方法,它的求解過(guò)實(shí)質(zhì)上是一個(gè)先序遍歷一棵“狀態(tài)樹(shù)”的過(guò)程,只是這棵樹(shù)不是遍歷前預(yù)先建立的,而是隱含在遍歷過(guò)程中的。

            冪集中的每個(gè)元素是一個(gè)集合,它或是空集,或含集合A中一個(gè)元素,或含集合A中兩個(gè)元素…… 或等于集合A。反之,從集合A 的每個(gè)元素來(lái)看,它只有兩種狀態(tài):它或?qū)賰缂臒o(wú)素集,或不屬冪集的元素集。則求冪集p(A)的元素的過(guò)程可看成是依次對(duì)集合A中元素進(jìn)行“取”或“舍”的過(guò)程,并且可以用一棵二叉樹(shù)來(lái)表示過(guò)程中冪集元素的狀態(tài)變化過(guò)程,樹(shù)中的根結(jié)點(diǎn)表示冪集元素的初始狀態(tài)(空集);葉子結(jié)點(diǎn)表示它的終結(jié)狀態(tài),而第i層的分支結(jié)點(diǎn),則表示已對(duì)集合A中前i-1個(gè)元素進(jìn)行了取舍處理的當(dāng)前狀態(tài)(左分支表示取,右分支表示舍 )。因此求冪集元素的過(guò)程即為先序遍歷這棵狀態(tài)樹(shù)的過(guò)程。

            具體算法如下:

            C/C++描述:

             1#include <iostream>
             2#include <cstring>
             3#include <ctype.h>
             4#include <stdlib.h>
             5#include <string>
             6using namespace std;
             7 
             8char a[100];
             9char b[100];
            10 
            11void GetPowerSet(int i, char a[])
            12{
            13    char x;
            14    int k;
            15    int len = strlen(a);
            16    if(i >= len)
            17    {
            18        if(b[0])
            19            cout << b <<  endl;
            20        else
            21            cout << "XX" << endl;  // 表示空集
            22    }

            23    else
            24    {
            25        x = a[i];
            26        k = strlen(b);
            27        b[k] = x;
            28        GetPowerSet(i+1, a);
            29        b[k] = 0;
            30        GetPowerSet(i+1, a);
            31    }

            32}

            33 
            34 
            35int main()
            36{
            37    while(scanf("%s", a) != EOF)
            38    {
            39        printf("%s的冪集是:\n", a);
            40        printf("------------\n");
            41        GetPowerSet(0, a);
            42        printf("------------\n");
            43    }

            44}
            posted on 2010-08-30 19:45 Tanky Woo 閱讀(4000) 評(píng)論(0)  編輯 收藏 引用

            只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            成人久久综合网| 狼狼综合久久久久综合网| 精品国产青草久久久久福利| 久久久久人妻一区精品| 久久人做人爽一区二区三区| 国产精品一久久香蕉产线看| 深夜久久AAAAA级毛片免费看| 一本一道久久a久久精品综合| 日本人妻丰满熟妇久久久久久| 久久婷婷国产麻豆91天堂| 老男人久久青草av高清| 青草影院天堂男人久久| 亚洲精品国产字幕久久不卡| 国内精品久久久久久久影视麻豆| 2021久久精品免费观看| 国产ww久久久久久久久久| 少妇久久久久久被弄高潮| 美女久久久久久| 91亚洲国产成人久久精品| 无码人妻久久一区二区三区免费丨| 久久AAAA片一区二区| 日韩精品久久久久久| 99久久国语露脸精品国产| 色婷婷综合久久久久中文| 超级碰碰碰碰97久久久久| 久久精品一区二区影院| 久久综合九色综合欧美狠狠| 777米奇久久最新地址| 久久亚洲中文字幕精品有坂深雪| 亚洲а∨天堂久久精品9966| 久久久久国产一区二区三区| 国产成人精品久久亚洲| 伊人久久精品线影院| 国产成人无码精品久久久免费 | 无码人妻久久一区二区三区蜜桃| 久久这里只有精品久久| 久久夜色精品国产亚洲| 91精品无码久久久久久五月天| 香蕉久久夜色精品国产小说| 久久er热视频在这里精品| 91精品免费久久久久久久久|