青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

雁過無痕

  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::

N個數計算24

問題:

    N113之間的自然數,找出所有能通過加減乘除計算(每個數有且只能用一次)得到24的組合

 

計算24點常用的算法有:① 任取兩個數,計算后,將結果放回去,再從剩下的數中任取兩個,如此反復直到只剩下一個數;② 先構建前綴/后綴表達式,再計算該表達式;③ 用集合保存中間結果,集合間兩兩進行合并計算得到新集合(或者對給定的一個集合,對其所有的子集合進行合并計算)。

本文采用第一種方法。定義六種操作符:ADDSUBMULDIVRSUBRDIV,分別對應加、減、乘、除、反減和反除(反減/除:先交換兩個數,再減/除)。

顯然,取兩個數計算時,六種計算結果可能有重復,可以對這6個結果進行去重(實際上,只要分別對加減(ADDSUBRSUB)和乘除(MULDIVRDIV)的3個計算結果進行去重判斷就可以了,效率和對6個結果去重相差不大)。

另外一種剪枝方法:保存每個數上次計算時所用的操作符(初始值為空)。所取的兩個數:

若某個數的上次操作符為減(SUBRSUB),那么不進行加減(ADDSUBRSUB)計算。

若某個數的上次操作符為除(DIVRDIV),那么不進行乘除(MULDIVRDIV)計算。

比如:取的兩個數為 a-b c(c的上次操作符任意),如果進行加減計算的話,

a-b+c  c+a-b重復,

c-(a-b)c+b-a重復

a-b-c  c+b RSUB a重復

也就是說,上次操作符為減的,進行加減計算時,總可以轉為某個上次操作符為加的表達式,因而可以不計算。同樣,上次操作符為除的,不進行乘除計算。

當然,還可以考慮記錄位置進行剪枝,這樣避免a+b+ca+c+b都進行計算。但要注意的是:在給定的組合無解時,越多的剪枝方法,極有可能提高搜索效率,但在給定的組合有解時,很可能反而降低搜索效率

另外,對有解時輸出的表達式的處理對程序的性能影響很大。如果每次計算都保存對應的表達式,會進行大量的字符串操作,嚴重影響性能。實際上,每次計算只要保存取出的兩個數的位置和所進行計算的操作符就夠了,最終需要輸出表達式時,只要模擬一下遞歸函數調用過程,進行相應的字符串操作。

下面是程序(gcc 4.5,優化參數-O2)在T4200/2G單核下運行的結果,計算10個數,646646個組合只用了不到13分鐘。


 
N113之間的數的所有組合,計算24

N

4

5

6

7

8

9

10

時間(ms)

78

610

4157

19593

160922

173766

764328

有解組合數

1362

6104

18554

50386

125969

293930

646646

總組合

1820

6188

18564

50388

125970

293930

646646

總表達式

1124776

15656645

105278906

492587616

3760744504

4535030813

19912345238

表達式A

457549

11864184

88679768

409129896

1173803224

4535030813

19912345238

表達式B

667227

3792461

16599138

83457720

2586941280

0

0

總函數調用

1482939

20950792

141892513

669790534

5258218577

6112529945

26948662625

函數調用A

603206

15849306

119160441

551913059

1576965280

6112529945

26948662625

函數調用B

879733

5101486

22732072

117877475

3681253297

0

0

其中:表達式A/B、函數調用A/B為:給定的n個數有/無解時,所處理的表達式總數和函數調用總次數。

 

    N=8N=9,兩個所用時間只相差13秒,這是由于N8時,有一個組合(81)無解,判斷這個組合無解需110多秒,而計算剩下的125969個組合還不要50秒。


程序代碼:

24.cpp
posted on 2010-08-15 23:20 flyinghearts 閱讀(2369) 評論(0)  編輯 收藏 引用 所屬分類: 算法編程之美C++
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            一区二区三区国产在线| 欧美性大战久久久久久久| 韩日欧美一区二区| 久久久午夜电影| 欧美激情综合色| 一本色道久久加勒比88综合| 欧美日韩在线观看一区二区| 欧美亚洲一区在线| 欧美韩国日本综合| 久久嫩草精品久久久精品| 夜夜嗨av一区二区三区四区| 99av国产精品欲麻豆| 国产一区二区看久久| 欧美日韩亚洲不卡| 欧美日韩在线免费| 久久riav二区三区| 一区二区冒白浆视频| 欧美国产日韩a欧美在线观看| 欧美77777| 久久久精品一区二区三区| 一区二区三区三区在线| 亚洲欧美日本日韩| 99精品久久免费看蜜臀剧情介绍| 日韩视频久久| 亚洲人成久久| 亚洲第一精品夜夜躁人人爽| 国产日韩精品在线观看| 欧美性事免费在线观看| 国产日韩欧美夫妻视频在线观看| 樱桃视频在线观看一区| 国产最新精品精品你懂的| 国产精品久久久久一区二区三区共| 欧美电影在线观看| 久久久久国产一区二区三区四区| 久久久精品999| 久久米奇亚洲| 久久成人这里只有精品| 欧美一区二区在线| 欧美金8天国| 欧美3dxxxxhd| 欧美顶级艳妇交换群宴| 国产精品久久久久99| 欧美色另类天堂2015| 永久免费精品影视网站| 亚洲一品av免费观看| 久久久精品国产一区二区三区| 一本色道久久综合亚洲精品不卡 | 欧美日韩三级在线| 国语自产偷拍精品视频偷| 日韩亚洲国产精品| 美女脱光内衣内裤视频久久网站| 久久伊人一区二区| 欧美a级理论片| 亚洲午夜一级| 欧美一区亚洲| 国产精品大全| 亚洲视频在线二区| 午夜在线一区二区| 久久久www成人免费无遮挡大片| 亚洲欧洲一区二区天堂久久 | 久久亚洲私人国产精品va| 国产精品国产三级国产| 一区二区三区精品| 亚洲精品美女在线观看| 国产精品99久久不卡二区| 亚洲欧美日韩成人高清在线一区| 欧美一区二区三区免费大片| 国产精品久久久亚洲一区 | 性欧美暴力猛交另类hd| 一本久道久久久| 久久国产直播| 国产欧美日韩在线播放| 亚洲精品韩国| 性8sex亚洲区入口| 欧美一级专区| 黄色精品免费| 欧美国产在线观看| 欧美国产高潮xxxx1819| 国产精品日本一区二区| 亚洲国产成人在线视频| 亚洲欧美制服另类日韩| 欧美激情在线观看| 欧美黄色一区| 亚洲无人区一区| 性久久久久久久| 欧美日韩亚洲一区在线观看| 亚洲一区在线看| 99精品国产在热久久婷婷| 国产精品二区影院| 久久噜噜亚洲综合| 欧美片网站免费| 亚洲人成精品久久久久| 一区二区三区www| 韩国av一区二区三区在线观看| 嫩草伊人久久精品少妇av杨幂| 欧美黄色免费网站| 久久久久久久97| 1769国产精品| 91久久精品一区二区别| 国产精品久久99| 免费成人av在线| 国产精品国产三级国产aⅴ浪潮| 午夜精品久久久久久久久| 久久久99爱| 亚洲一区在线播放| 久久综合久久久| 国内精品久久久久国产盗摄免费观看完整版| 久久九九国产精品| 欧美日韩免费一区二区三区| 久久综合给合| 国产精品日韩电影| 亚洲区国产区| 激情欧美一区二区三区| 久久久五月天| 国产精品大片| 亚洲激情小视频| 精品51国产黑色丝袜高跟鞋| 在线亚洲成人| 99这里只有精品| 久久综合色综合88| 久久亚洲春色中文字幕| 国产农村妇女精品一区二区| 亚洲日本va在线观看| 一区二区在线观看av| 亚洲综合色丁香婷婷六月图片| 国产日韩欧美另类| 亚洲精品美女| 亚洲久久一区| 美女脱光内衣内裤视频久久网站| 亚洲人成在线影院| 欧美在线视频二区| 久久se精品一区精品二区| 欧美在线电影| 亚洲欧美日韩国产中文在线| 欧美精品电影| 亚洲福利视频一区| 欧美另类一区| 欧美激情按摩| 亚洲精品视频在线播放| 欧美成人国产| 最新日韩精品| 亚洲精品国产精品乱码不99按摩| 久久成人国产| 嫩模写真一区二区三区三州| 国产一区二区欧美日韩| 久久国产精品高清| 久久久夜夜夜| 亚洲高清av| 欧美激情bt| 9久草视频在线视频精品| 亚洲免费在线观看视频| 国产精品乱码一区二区三区| 亚洲欧美成人网| 久久久噜噜噜久久狠狠50岁| 国产日韩视频| 久久久亚洲成人| 亚洲经典在线| 亚洲欧美一区二区三区极速播放 | 黄色成人91| 久久综合狠狠综合久久综青草| 亚洲人线精品午夜| 在线一区视频| 久久福利影视| 亚洲精品亚洲人成人网| 欧美色播在线播放| 久久国产精品久久国产精品| 免费中文日韩| 亚洲特色特黄| 伊人激情综合| 欧美日韩亚洲系列| 欧美中日韩免费视频| 亚洲激情女人| 欧美一区二区三区视频在线| 久久综合久久综合这里只有精品| 欧美成人精品激情在线观看| 亚洲视频www| 国产伦精品一区二区三区在线观看| 亚洲精品视频在线观看网站| 在线观看欧美黄色| 国产精品第2页| 欧美在线一级视频| 亚洲精品日韩在线观看| 久久久国产视频91| 在线一区二区三区做爰视频网站| 国产亚洲欧美日韩美女| 欧美日韩在线免费| 久久伊人免费视频| 亚洲砖区区免费| 亚洲毛片在线免费观看| 欧美成人有码| 亚洲精品午夜| 国产一区在线免费观看| 欧美日韩亚洲免费| 欧美v日韩v国产v| 欧美一区二区三区四区高清| 99riav1国产精品视频| av不卡在线看| 亚洲国产欧美日韩精品| 欧美风情在线观看| 久久精品国产免费看久久精品|