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

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

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

    J2EE之巔

     

    The Clojure Program To solve N Queens Problem

    The following program is about solving N-Queens problem (http://en.wikipedia.org/wiki/Eight_queens_puzzle) by Clojure. If you have the better solution in Clojure or Haskell, welcome to provide your solution.
    (ns queens)
    (defn conflictInRow? [queens newqueen]
      (some #(= newqueen %) queens)
    )
    (defn conflictInDia? [queens newqueen]
      (let [dia (count queens) 
            n1 (fn [queen] (Math/abs (- dia (.indexOf queens queen))))
            n2 (fn [queen] (Math/abs (- newqueen queen)))]
        (some #(= (n1 %) (n2 %)) queens)
       )
     )
    (defn conflict? [queens newqueen]
      (or (conflictInRow? queens newqueen) (conflictInDia? queens newqueen))
     )
    (def cnt (atom 0))
    (defn put-queens [queens newqueen boardSize ]
      (if (= (count queens) boardSize)  
        (do
          (println queens)
          (reset! cnt (inc @cnt))
        )
        (do 
          ;(println queens)
          (if (> newqueen boardSize)
         
               (if (and (= (peek queens) boardSize) (= (count queens) 1))
                   (throw (Exception. (str "That's all " @cnt)))
                   (recur (pop queens) (inc (peek queens)) boardSize )
               )
         
            (if (conflict? queens newqueen)
                
                 (recur queens (inc newqueen) boardSize )
                 
              (do
                 (put-queens (conj queens newqueen) 1 boardSize )
                 (recur queens (inc newqueen) boardSize )
               )
            )
           )
          )
        )
        
    )
    (defn queens [boardSize] 
        (put-queens [] 1 boardSize)
     )


    Chao Cai (蔡超)

    Sr. Software Dev Engineer 
    Amazon.com

     

    posted on 2012-08-05 23:26 超越巔峰 閱讀(2483) 評(píng)論(0)  編輯  收藏 所屬分類: Computer Science


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(12)

    隨筆分類(54)

    隨筆檔案(59)

    文章分類(2)

    文章檔案(1)

    相冊(cè)

    搜索

    積分與排名

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 日韩免费人妻AV无码专区蜜桃| 69成人免费视频无码专区| 国产成人精品免费视频大全五级| 国产成人无码综合亚洲日韩| 亚洲日韩在线中文字幕综合| 久久久久久曰本AV免费免费| 亚洲午夜福利精品久久| 亚洲色一区二区三区四区| 久久国产精品免费观看| 亚洲欧洲精品成人久久奇米网| 久久乐国产综合亚洲精品| 99久久精品免费精品国产| 国产av无码专区亚洲国产精品| 中文字幕亚洲精品无码| 99久热只有精品视频免费看 | 亚洲精品无码不卡| 午夜不卡AV免费| 全免费a级毛片免费看不卡| 久久亚洲精品成人无码网站| 本免费AV无码专区一区| 全部免费毛片免费播放| 久久亚洲精品国产亚洲老地址 | 亚洲国产中文v高清在线观看| 亚洲午夜成人精品无码色欲| 最近免费mv在线电影| 亚洲AV无码成人专区片在线观看 | 岛国精品一区免费视频在线观看| 日韩免费视频观看| 亚洲午夜在线一区| 91av免费观看| 五月天网站亚洲小说| a毛看片免费观看视频| 亚洲婷婷国产精品电影人久久| 亚洲欧美在线x视频| 卡1卡2卡3卡4卡5免费视频| 国产午夜亚洲精品| 91在线视频免费91| 亚洲伊人久久大香线蕉啊| 四虎在线最新永久免费| 亚洲视频日韩视频| 三年片在线观看免费大全电影|