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

雁過無痕

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

《編程之美》讀書筆記22:    1.16  24點游戲(補充)

 

給定n個數,能否只通過加減乘除計算得到24

書上給出的最后一種解法,通過使用集合記錄中間結果來減少冗余計算。本以為,程序會占用大量的內存,用一個極端的例子(13, 773, 28, 98, 731, 1357,973572467個數)測試了一下實現的程序,發現程序竟然占用了1G以上的內存(無論集合的實現采用STL中的set還是unordered_set),但后來,取7個均在113之間的數,再重新測試了下發現,程序所占用的內存比想像的小的多,也就幾兆。

對數值都在113之間的n個數的所有組合進行判斷。在n等于4時,實現的程序約過1秒就給出了結果,而n等于5時,程序要運行58秒,效率實在差,可以通過這幾方面優化:

① 保存每個集合的子集合的編號:

對給定的n,共有12^n – 1個集合,每個集合的子集合編號是固定的,但原程序每計算一個n個數的組合,都要對這些子集合編號計算一遍,可以保存每個集合的子集合編號,減少大量的重復計算。

② 改進計算子集合編號的算法:

原程序的算法的時間復雜度是O(4^n),在n較大時,相當慢。

③ 對最后一個集合是否含有24的判斷:

原程序要遍歷該集合所有的元素,效率比較差,可以考慮,在將兩個集合合并到該集合時,只對取出的兩個元素的計算結果是否為24進行判斷,這樣不僅省去最后的遍歷,而且不用將結果插入到最后的那個集合中,省去了大量操作。

 

采用①和③兩種改進方法后,程序運行時間由原來的58秒縮短到了14秒,但這還不能讓人滿意。對2,3,5,6,85個數,如果用書上的第一種方法,可以只調用4次函數就可以得到結果:2+3+5+6+8=24,但用集合的方法來處理,卻要對所有的集合進行子集合合并后才能給出結果,這造成了效率極差,可以這樣改進該算法:

初始有n個集合:每一次任意取出2個集合,合并后,放回去,再取出任意2個集合,重復前面的操作,直到只剩下一個集合為止。

例如:初始有5個數,把這5個數分別放到5個集合,并分別編號為:124816。任意取出2個集合,假設為14,將14合并,得到編號為5(=1+4)的集合,剩下的集合為:52168,再取出2個,假設為58,合并后,得到13216,再取2個,假設為1316,合并后得到292,當剩下2個集合時,可以直接對這兩個集合間的的計算結果是否為24進行判斷,直接得出結果,省去不必要的合并(合并后再判斷是否有元素近似等于24,程序運行時間8s多,而直接對計算結果判斷,程序只要運行1s多)。

優化后的程序,只要運行1s多。但其效率還是不如書上的第一種方法的改進版,仔細想想,n越大,集合的元素也就越多,兩個集合之間的合并,就越耗時間。而且采用集合保存中間結果,表面上減少了重復狀態,會提高效率,但實際上,由于采用了集合,就多了很多不必要的計算,(比如,對2+3+5+6+8=24,最少只要4次計算就能得出結果,采用集合合并后,則要計算幾百次(約為6^4)),再加上實現集合所采用的數據結構的開銷,效率高不了。

24_set_1



24_set_2.cpp


24_set_3.cpp
posted on 2010-08-15 23:35 flyinghearts 閱讀(976) 評論(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>
            国内精品久久久久伊人av| 免费人成网站在线观看欧美高清 | 久久精品卡一| 亚洲欧美日韩另类| 欧美一级精品大片| 久久激情综合网| 欧美成人资源网| 国产精品高潮呻吟| 韩国免费一区| 日韩亚洲欧美在线观看| 亚洲影院污污.| 久久久国产精品一区二区中文| 欧美一区在线直播| 欧美88av| 亚洲伊人第一页| 久久夜色撩人精品| 国产精品sss| 在线观看视频亚洲| 亚洲午夜伦理| 免费看精品久久片| 99国产精品久久久| 久久精品天堂| 久久久久久97三级| 亚洲欧洲一区二区天堂久久| 99这里只有久久精品视频| 亚洲一区二区在线观看视频| 裸体丰满少妇做受久久99精品| 亚洲精品乱码久久久久久按摩观 | 欧美成人国产va精品日本一级| 亚洲成人在线视频播放| 亚洲色图自拍| 欧美高清在线一区二区| 国产日韩欧美自拍| 一区二区三区视频在线观看| 久久久99免费视频| av不卡在线| 欧美电影免费观看网站| 国产有码在线一区二区视频| 亚洲视频在线二区| 亚洲高清久久| 裸体歌舞表演一区二区| 国产在线观看91精品一区| 亚洲永久在线观看| 亚洲日本va在线观看| 久久先锋资源| 精品1区2区| 久久久久中文| 午夜精品视频在线观看| 国产精品地址| 亚洲免费视频网站| 一区二区三区视频在线观看 | 男同欧美伦乱| 一区二区三区在线视频播放| 欧美一区二区三区视频免费播放| 日韩视频在线观看免费| 欧美激情一区二区三区四区| 91久久亚洲| 亚洲激情欧美| 欧美另类极品videosbest最新版本| 亚洲电影一级黄| 欧美激情精品久久久六区热门 | 亚洲大片一区二区三区| 久久夜色精品国产噜噜av| 午夜日韩在线| 国产一区二区三区四区三区四| 午夜精品福利在线观看| 亚洲午夜av在线| 国产美女在线精品免费观看| 欧美亚洲日本一区| 欧美亚洲一级| 伊人狠狠色丁香综合尤物| 久久综合久久美利坚合众国| 久久久久久高潮国产精品视| 亚洲福利在线看| 亚洲精华国产欧美| 亚洲精品1234| 亚洲夫妻自拍| 欧美成人三级在线| 一二美女精品欧洲| 亚洲一区久久| 伊人成综合网伊人222| 欧美激情1区2区| 欧美日韩国产色站一区二区三区 | 久久久久国产精品www| 欧美在线观看视频一区二区三区 | 亚洲欧美一区二区三区在线| 亚洲欧美乱综合| 一区二区三区在线免费视频 | 99日韩精品| 国产亚洲一级| 亚洲日本成人| 国产亚洲欧美一区| 亚洲国产美女| 国产日韩欧美麻豆| 亚洲国产欧美一区二区三区久久 | 久久国产精品第一页| 久久亚洲春色中文字幕| 亚洲香蕉网站| 久久久久国产一区二区三区| 夜夜爽99久久国产综合精品女不卡| 亚洲一区在线直播| 亚洲狼人精品一区二区三区| 亚洲欧美在线视频观看| 亚洲免费电影在线| 久久久久www| 欧美亚洲免费在线| 欧美日韩一区二区免费在线观看| 久久免费高清| 国产精品黄视频| 亚洲精品123区| 在线日本欧美| 午夜精品久久久久久久蜜桃app| 99re66热这里只有精品3直播 | 欧美成人精品激情在线观看| 国产精品va| 亚洲国产精品久久久| 狠狠久久五月精品中文字幕| 亚洲一二三区精品| 一本色道久久加勒比88综合| 久久久久欧美精品| 欧美在线视频在线播放完整版免费观看| 欧美1区2区| 亚洲第一精品夜夜躁人人爽| 红桃av永久久久| 久久www成人_看片免费不卡| 久久精品国语| 亚洲国产日韩精品| 国产综合精品| 欧美亚洲在线| 久久精品一本| 国产一区二区三区久久久| 亚洲综合视频在线| 午夜精品视频在线观看| 欧美午夜精品久久久久久浪潮| 亚洲国产另类久久久精品极度| 亚洲高清在线精品| 免费一区二区三区| 亚洲国产精品免费| 一区二区不卡在线视频 午夜欧美不卡在 | 亚洲欧美日韩综合| 国产精品超碰97尤物18| 在线亚洲电影| 午夜视频在线观看一区二区三区 | 国产精品久久久久久久久久久久| 亚洲九九爱视频| 亚洲制服欧美中文字幕中文字幕| 欧美色123| 亚洲在线成人精品| 久久久久青草大香线综合精品| 国产亚洲毛片在线| 久久久精彩视频| 欧美激情中文字幕在线| 亚洲精品日韩综合观看成人91| 欧美国产日韩精品| 日韩一区二区电影网| 香蕉国产精品偷在线观看不卡| 国产欧美精品va在线观看| 性欧美xxxx大乳国产app| 玖玖在线精品| 在线视频精品一| 国产欧美一区二区精品婷婷| 久久久久欧美精品| 一本色道久久综合亚洲精品婷婷| 欧美中文在线观看国产| 亚洲国产成人久久综合一区| 欧美伦理影院| 欧美影视一区| 亚洲精品美女在线观看| 欧美伊人久久久久久午夜久久久久| 娇妻被交换粗又大又硬视频欧美| 欧美精品在线观看91| 午夜激情综合网| 亚洲国产岛国毛片在线| 亚洲欧美日韩精品久久久| 韩日午夜在线资源一区二区| 欧美日本亚洲韩国国产| 久久九九久精品国产免费直播| 99re6热在线精品视频播放速度| 欧美在线中文字幕| 99精品国产热久久91蜜凸| 国产伦精品一区二区三区四区免费 | 国产人成一区二区三区影院| 在线观看日韩国产| 国产精品国产三级国产专播品爱网| 欧美一区二区在线播放| 亚洲美女在线看| 欧美成人精精品一区二区频| 亚洲视频999| 91久久一区二区| 极品中文字幕一区| 国产欧美日韩在线视频| 欧美日韩一本到| 免费观看国产成人| 久久成人人人人精品欧| 中文成人激情娱乐网| 欧美fxxxxxx另类| 久久国产精品一区二区三区四区| 亚洲图片在区色| 亚洲黄色精品| 亚洲国产精品日韩|