<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)論排行榜

    主站蜘蛛池模板: 日本特黄特色免费大片| 自拍偷自拍亚洲精品情侣| 污网站在线观看免费| 久久久久久久尹人综合网亚洲| 久久99国产综合精品免费| 亚洲人成人伊人成综合网无码| 自拍偷自拍亚洲精品情侣| 免费看黄视频网站| 人妻巨大乳hd免费看| 亚洲人和日本人jizz| 精品亚洲视频在线观看| 97性无码区免费| aaa毛片免费观看| 久久狠狠爱亚洲综合影院| 国产精品亚洲mnbav网站| jjizz全部免费看片| 男女啪啪免费体验区| 久久综合亚洲色HEZYO社区| 免费一级做a爰片性色毛片| 99re在线免费视频| 高清免费久久午夜精品| 亚洲成a人不卡在线观看| 亚洲精品在线视频| 毛片a级毛片免费观看品善网| 国内精品免费久久影院| 日韩欧美亚洲中文乱码| 亚洲在成人网在线看| 亚洲乱码无码永久不卡在线| 免费看又爽又黄禁片视频1000| 国产在线a不卡免费视频| 95免费观看体验区视频| 一区二区免费电影| 亚洲人成免费电影| 亚洲午夜国产精品无码| 在线观看永久免费视频网站| 最近高清中文字幕无吗免费看| a毛片免费在线观看| 曰批免费视频播放免费| 亚洲精品伦理熟女国产一区二区 | 亚洲AV无码乱码在线观看裸奔| 国产一区在线观看免费|