<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Decode360's Blog

    業精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 ::  :: 管理 ::
      397 隨筆 :: 33 文章 :: 29 評論 :: 0 Trackbacks
    PLSQL算24點
    ?
    ?
    ??? 很早以前就想用PLSQL寫一個算24點的程序了,后來想了一下沒有研究下去,最近上ITPUB的時候正好大家都在討論,在大牛的基礎上修改了一下,基本上思想和算法都是沒有變的,就是學習了一下。還有兩個大問題沒有處理好,一是只用了枚舉法,用PLSQL應該可以換個更好的遞歸算法的;二是沒有濾重;反正最后的結果只是最簡單的得到答案而已。
    ?
    ??? 具體的可以參見:
    ?
    ??? http://www.itpub.net/viewthread.php?tid=1061129&extra=page%3D1%26amp%3Bfilter%3Ddigest&page=1
    ??? http://www.itpub.net/viewthread.php?tid=1077244&extra=&page=1
    ?
    ?
    ?
    create or replace function f_op (p_n1 number, p_op varchar2, p_n2 number) return number
    as
    begin
    ?? return case when p_op = '+' then p_n1 + p_n2
    ?????????????? when p_op = '-' then p_n1 - p_n2
    ?????????????? when p_op = '*' then p_n1 * p_n2
    ?????????????? when p_op = '/' and p_n2<>0 then p_n1 / p_n2
    ?????????????? else null
    ????????? end;
    end f_op;
    /
    ?
    ?
    create or replace procedure pro_24(p1 number, p2 number, p3 number, p4 number) as
    ? r_result number default 0;
    begin
    ? for r in (
    ????? with t_num as
    ????????? (select 1 id,p1 as n from dual
    ?????????? union
    ?????????? select 2 id,p2 as n from dual
    ?????????? union
    ?????????? select 3 id,p3 as n from dual
    ?????????? union
    ?????????? select 4 id,p4 as n from dual),
    ?????????? t_op as
    ????????? (select '+' as o from dual
    ?????????? union
    ?????????? select '-' as o from dual
    ?????????? union
    ?????????? select '*' as o from dual
    ?????????? union
    ?????????? select '/' as o from dual)
    ?????? select distinct
    ????????????? a.n? as a,
    ????????????? o1.o as o1,
    ????????????? b.n? as b,
    ????????????? o2.o as o2,
    ????????????? c.n? as c,
    ????????????? o3.o as o3,
    ????????????? d.n? as d
    ???????? from t_num a, t_num b, t_num c, t_num d,
    ????????????? t_op? o1, t_op? o2, t_op? o3
    ??????? where a.id not in (b.id, c.id, d.id)
    ????????? and b.id not in (c.id, d.id)
    ????????? and c.id <> d.id) loop
    ?
    ?????? r_result := f_op(f_op(f_op(r.a,r.o1,r.b),r.o2,r.c),r.o3,r.d);
    ?????? if r_result between 23.9 and 24.1 then
    ?????? dbms_output.put_line('(('||r.a||r.o1||r.b||')'||r.o2||r.c||')'||r.o3||r.d);
    ?????? end if; --((a b) c) d
    ??????
    ?????? r_result := f_op(f_op(r.a,r.o1,f_op(r.b,r.o2,r.c)),r.o3,r.d);
    ?????? if r_result between 23.9 and 24.1 then
    ?????? dbms_output.put_line('('||r.a||r.o1||'('||r.b||r.o2||r.c||'))'||r.o3||r.d);
    ?????? end if; --(a (b c)) d
    ??????
    ?????? r_result := f_op(f_op(r.a,r.o1,r.b),r.o2,f_op(r.c,r.o3,r.d));
    ?????? if r_result between 23.9 and 24.1 then
    ?????? dbms_output.put_line('('||r.a||r.o1||r.b||')'||r.o2||'('||r.c||r.o3||r.d||')');
    ?????? end if; --(a b) (c d)
    ??????
    ?????? r_result := f_op(r.a,r.o1,f_op(f_op(r.b,r.o2,r.c),r.o3,r.d));
    ?????? if r_result between 23.9 and 24.1 then
    ?????? dbms_output.put_line(r.a||r.o1||'(('||r.b||r.o2||r.c||')'||r.o3||r.d||')');
    ?????? end if; --a ((b c) d)
    ???????????
    ?????? r_result := f_op(r.a,r.o1,f_op(r.b,r.o2,f_op(r.c,r.o3,r.d)));
    ?????? if r_result between 23.9 and 24.1 then
    ?????? dbms_output.put_line(r.a||r.o1||'('||r.b||r.o2||'('||r.c||r.o3||r.d||'))');
    ?????? end if; --a (b (c d))
    ? end loop;
    end;
    /
    ?
    ?
    exec pro_24(3,3,8,8);
    ?
    posted on 2008-12-28 23:55 decode360 閱讀(155) 評論(0)  編輯  收藏 所屬分類: 06.PLSQL
    主站蜘蛛池模板: 亚洲av色香蕉一区二区三区| 国产日韩亚洲大尺度高清| 最新中文字幕免费视频| av无码免费一区二区三区| 182tv免费观看在线视频| 99视频有精品视频免费观看| 日韩精品免费在线视频| 久久久久免费看黄a级试看| 在线观看片免费人成视频无码| a级毛片100部免费观看| 永久免费av无码网站yy| 免费日本一区二区| 91人成网站色www免费下载| 57pao国产成永久免费视频| 黄色片在线免费观看| 成人性生交大片免费看午夜a| 午夜寂寞在线一级观看免费| 日本无卡码免费一区二区三区| 日韩激情无码免费毛片| 免费乱理伦在线播放| 亚洲婷婷国产精品电影人久久| 中文字幕久久亚洲一区| 亚洲AV乱码久久精品蜜桃| 亚洲综合综合在线| 亚洲一卡2卡3卡4卡5卡6卡| 美女视频黄频a免费观看| 一级特黄a免费大片| 在线成人精品国产区免费| 91精品全国免费观看含羞草| 国产在线jyzzjyzz免费麻豆| 国产大片51精品免费观看| 久久久久无码专区亚洲av| 亚洲毛片在线观看| 亚洲视频在线观看2018| 亚洲AV无码精品国产成人| 搜日本一区二区三区免费高清视频 | 最近高清国语中文在线观看免费| 成年人性生活免费视频| 好爽好紧好大的免费视频国产| 国产福利免费观看| 337p日本欧洲亚洲大胆裸体艺术 |