• <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>
            隨筆 - 51, 文章 - 1, 評論 - 41, 引用 - 0
            數據加載中……

            計算24點

                  計算24點有不同版本,這里規定:運用加減乘除計算四個整數使它的結果為24。當然這個算法經過適當的修改適合所有的二元運算符,也能計算超過四個整數。
                  
            計算24點的算法較簡單,就是窮舉法。由于一般計算表達式含有括號,這使得窮舉無從下手。所以本文使用另一種表達式——后綴表達式。 
                  后綴表達式就是數字放前運算符放后的表達式。如:a+b表示為a b+,(a+b)*c-d表示為a b + c * d -。用這樣表達式可以去掉括號,這對本文的算法很關鍵。
                  任何一個計算24點的算式都可以化成7位的后綴表達式
            假設給定的四個整數:a b c d。給定的運算符號集{+,-,*,/}。首先從符號集中取出三個運算符,然后加上a b c d。這七個單位的每一個排列都可以當成一個后綴表達式:或者是不合法的,或者是合法的。窮舉并計算這樣的排列,就可找出答案。
                  上面的方法是先取定7個單位,然后判斷這7個單位組成的表達式是否合法。換一種思路,先取定一個合法的表達式,即確定數字和符號的位置,然后確定7個單位,對應數字和符號的位置。
                  這兩種枚舉方法都可行,第二種會快一些,它把判斷后綴表達式合法性放在最外層循環,從而省去了不少的判斷。
                  注:這個里用的枚舉集合的方法參見另一篇文章《從集合中枚舉子集》
                  具體實現見代碼
                  編譯方式:
                  g++ Calc24.cpp SetIter.cpp   得到第一種方法。
                  g++ Calc24.cpp SetIter.cpp -DCALC24_ADV   得到第二種方法。

            posted on 2007-09-21 22:02 lemene 閱讀(752) 評論(2)  編輯 收藏 引用

            評論

            # re: 計算24點  回復  更多評論   

            您好!我覺得您的這個關于24點計算的想法很好!我想問個問題,就是說我要第二種方法,事先算出有五種后綴表達式的格式是正確的,之后我應該怎樣列舉出這些表達式呢?我覺得不停的迭代循環套的層太多了。請問您有什么好方法嗎
            2012-05-30 03:55 | jjx

            # re: 計算24點[未登錄]  回復  更多評論   

            @jjx
            這里只嵌套三層循環:
            第一層確定表達式的樣式,次數為C(3,7).
            第二層確定操作符,次數為P(3,5).
            第三層確定數字,如果數字沒有相同的,則次數為P(4,4).
            2012-06-10 22:22 | lemene
            亚洲国产精品无码久久一线| 久久99精品国产麻豆不卡| 亚洲国产精品18久久久久久| 久久久久AV综合网成人| 97超级碰碰碰久久久久| 久久夜色撩人精品国产小说| 99久久国产综合精品女同图片| 国产精品久久久久久| 亚洲第一永久AV网站久久精品男人的天堂AV | 久久青草国产精品一区| 久久伊人亚洲AV无码网站| 亚洲AV无码1区2区久久| 91久久国产视频| 久久永久免费人妻精品下载| 久久久久亚洲精品天堂久久久久久| 日日躁夜夜躁狠狠久久AV| 久久狠狠一本精品综合网| 一本色道久久88—综合亚洲精品| 久久99精品国产99久久6| 久久久久久久久无码精品亚洲日韩 | 久久国产香蕉视频| 2022年国产精品久久久久| 亚洲伊人久久综合中文成人网| 久久天天躁狠狠躁夜夜躁2O2O| 中文字幕亚洲综合久久菠萝蜜| 91精品国产综合久久香蕉| 国产∨亚洲V天堂无码久久久| 久久人爽人人爽人人片AV | 国产精品免费福利久久| 噜噜噜色噜噜噜久久| 国产叼嘿久久精品久久| av无码久久久久不卡免费网站 | 久久成人国产精品二三区| 亚洲精品无码久久久久去q| 亚洲精品综合久久| 国产精品熟女福利久久AV| 国产成人久久777777| 久久久WWW免费人成精品| 久久天天日天天操综合伊人av| 国内精品久久久久久久影视麻豆| 国产精品成人久久久久久久|