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

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

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

    Java開發

    細節是一個工程師的基本素養

    Haskell之美——求子集問題

    要求數列[1,2,3]子集,結果應該如下(順序無關):
    [[],[1],[1,2],[1,2,3],[1,3],[2],[2,3],[3]]

    如果用C語言求解,在CSDN上找到別人的代碼如下
     1   #define   N   4  
     2   #include   <stdio.h>  
     3   int   used[N]={0};//加上  
     4    
     5   void   output()  
     6   {  
     7         int   i;  
     8         for(i=0;i<N;i++)if(used[i])printf("%d   ",i+1);  
     9         printf("\n");  
    10   }  
    11    
    12   void   f(int   i)  
    13   {  
    14         if(i>=N)  
    15         {  
    16               output();  
    17               return;  
    18         }  
    19         f(i+1);  
    20         used[i]=1;  
    21         f(i+1);  
    22         used[i]=0;//加上  
    23   }  
    24    
    25   void   main()  
    26   {  
    27       f(0);  
    28       getchar();  
    29   }    

    如果是Haskell呢?(不包括空集)
    1 subsets :: [a] -> [[a]]
    2 subsets [x]  = [[x]]
    3 subsets (x:xs)  = [x] :  [x:i|i<-s]++ s
    4   where s = subsets xs

    除去聲明就三行還可以縮減到2行。且含義清楚。Haskell果然是一個研究算法最好的語言。



    posted on 2008-12-15 22:25 躺著讀書 閱讀(687) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     

    My Links

    Blog Stats

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲视频在线一区二区三区| 亚洲国产精品无码久久久久久曰 | 中文字幕乱理片免费完整的| 免费a级毛片无码av| 免费人成大片在线观看播放电影| 亚洲久热无码av中文字幕| 免费看片在线观看| 亚洲av无码久久忘忧草| 国产99视频精品免费观看7| 亚洲欧洲日韩极速播放| 四虎免费永久在线播放| 成人a毛片视频免费看| 91麻豆国产自产在线观看亚洲 | 久久精品一区二区免费看| 久久亚洲国产视频| 一个人免费日韩不卡视频| 222www免费视频| 国产精品jizz在线观看免费| 久久精品国产亚洲AV未满十八| 又黄又爽一线毛片免费观看| 特a级免费高清黄色片| 日韩va亚洲va欧洲va国产| 3344永久在线观看视频免费首页| 亚洲精品视频免费看| 久久不见久久见免费影院| 亚洲日韩国产精品无码av| 日韩电影免费在线观看视频| 女人裸身j部免费视频无遮挡| 人人狠狠综合久久亚洲88| 中文字幕免费在线看线人| 免费观看亚洲人成网站| 亚洲国产成人高清在线观看| 在线观看视频免费完整版| 日韩大片免费观看视频播放| 亚洲男人第一av网站| 国产成人无码精品久久久久免费| 亚洲Av熟妇高潮30p| 国产一区二区三区无码免费| 成在线人视频免费视频| 亚洲18在线天美| 亚洲精品无码不卡在线播HE|