<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
    主站蜘蛛池模板: 国内永久免费crm系统z在线| 中文字幕精品亚洲无线码一区| 成在线人免费无码高潮喷水| 亚洲色大成WWW亚洲女子| 亚洲国产一区国产亚洲| 亚洲最大av无码网址| 国产成人精品123区免费视频| 2019中文字幕免费电影在线播放| jizz在线免费播放| 羞羞的视频在线免费观看| 2020国产精品亚洲综合网| 在线观看亚洲人成网站| 亚洲国产精品乱码一区二区| 亚洲视频在线精品| 亚洲国产成人久久一区WWW| 在线观看91精品国产不卡免费| 免费看国产精品3a黄的视频 | 免费无码黄网站在线观看| 免费精品国偷自产在线在线| 99视频在线免费| 亚洲免费在线视频| 久久久精品免费视频| a毛片在线免费观看| 在线播放免费人成视频网站| 免费国产污网站在线观看不要卡| 亚洲av日韩精品久久久久久a| 亚洲xxxx视频| 亚洲熟女综合一区二区三区| 在线综合亚洲中文精品| 亚洲kkk4444在线观看| 亚洲日韩中文字幕一区| 亚洲国产欧洲综合997久久| 亚洲精品无码一区二区| 亚洲av综合日韩| 视频免费1区二区三区| 一级看片免费视频| 国产精品内射视频免费| 国产免费网站看v片在线| 无人在线观看免费高清| ww4545四虎永久免费地址| 中文字幕av无码无卡免费|