新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 試著用回溯法解,推理題

        試著用回溯法解,推理題

        作者: 時(shí)間:2016-12-01 來源:網(wǎng)絡(luò) 收藏
        #include stdio.h
        class TuiLi //推理類
        {
        //私有方法部分
        protected:

        SYSTEMTIME TIME; //標(biāo)準(zhǔn)系統(tǒng)時(shí)間存放結(jié)構(gòu)體共8個(gè)成員16字節(jié)

        struct FZ
        {
        int ys;
        int yp;
        int gj;
        int cw;
        int yl;
        };//房子屬性結(jié)構(gòu)體

        FZ Fz[5];//定義5間房子
        int Biao[120][5];//定義組合表
        int gj,ys,yl,cw,yp;//組合標(biāo)志
        int sz[25];

        //解數(shù)獨(dú)用
        int sudu[81]; //記錄回溯路徑用
        bool sudu_ji[81]; //用于標(biāo)記已經(jīng)被題目標(biāo)示出來的值
        int SD[9][9]; //數(shù)獨(dú)棋盤

        //解N皇后問題
        int N;//用于輸入皇后問題的解題規(guī)模本例子因?yàn)閮?nèi)存分配只能解33皇后以類的問題更改內(nèi)存分配大小可以增大解題規(guī)模
        int hh[1024]; //記錄回溯路徑用最多用于解33皇后問題
        int HH[33][33];//皇后問題棋盤



        //公共方法部分
        public:
        TuiLi(void);
        ~TuiLi(void);
        void init_biao(void);//初始化組合表
        void print(void);//屏幕輸出
        void gx(void);//刷新推理結(jié)果
        int OK(void);//推理剪枝條件
        int go(void);//推理題主入口方法

        int ok_sd(void);//數(shù)獨(dú)剪枝條件
        int go_sd(void);//解數(shù)獨(dú)人口點(diǎn)
        void sd_in(void);//棋盤數(shù)據(jù)輸入
        void SD_in(void);//獲取題目信息
        void sd_out(void);//棋盤數(shù)據(jù)輸出
        void sd_print(void);//屏幕輸出結(jié)果

        int ok_hh(int m);//皇后問題剪枝函數(shù)
        int ok_hh_sc(void);//最后檢測
        int go_hh(void); //皇后問題入口點(diǎn)
        void hh_init(void);//初始化棋盤數(shù)據(jù)
        void hh_out(void);//棋盤數(shù)據(jù)刷新
        void hh_print(void);//輸出結(jié)果

        };


        關(guān)鍵詞: 回溯法推理

        評論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 扬州市| 莲花县| 噶尔县| 东阿县| 拉萨市| 潢川县| 长宁区| 敖汉旗| 德令哈市| 长治市| 平阴县| 谢通门县| 临邑县| 开平市| 梁河县| 萨嘎县| 尚义县| 泰兴市| 乌拉特前旗| 离岛区| 吴旗县| 昌吉市| 师宗县| 江安县| 株洲县| 汉源县| 常德市| 平江县| 青冈县| 乌兰察布市| 扎兰屯市| 锡林郭勒盟| 巴彦淖尔市| 英超| 洛宁县| 临清市| 时尚| 莲花县| 合江县| 张掖市| 禹城市|