<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 超越巔峰 閱讀(2473) 評論(0)  編輯  收藏 所屬分類: Computer Science


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


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

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(12)

    隨筆分類(54)

    隨筆檔案(59)

    文章分類(2)

    文章檔案(1)

    相冊

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 99精品视频在线观看免费播放| 中文字幕无线码中文字幕免费| 亚洲大片免费观看| 亚洲国产成人精品不卡青青草原| 国产亚洲精品免费视频播放| 亚洲午夜久久久久久噜噜噜| aa级毛片毛片免费观看久| 国产日产亚洲系列| 免费播放在线日本感人片| 亚洲国产综合专区在线电影| 99精品在线免费观看| 亚洲人色大成年网站在线观看| 18禁止观看免费私人影院| 国产成人精品日本亚洲18图| 成人午夜性A级毛片免费| 亚洲av中文无码乱人伦在线观看| 国产精品免费视频播放器| 九一在线完整视频免费观看| 久久久久久久综合日本亚洲| 亚洲人成免费电影| 亚洲人成网站在线播放2019| 亚洲精品tv久久久久| 99re在线精品视频免费| 亚洲精品伊人久久久久| 亚洲成A∨人片天堂网无码| 怡红院免费全部视频在线视频| 666精品国产精品亚洲 | 国产偷国产偷亚洲清高动态图| a级毛片视频免费观看| 91在线亚洲精品专区| 日本免费电影一区| 中国一级毛片免费看视频| 亚洲精品一区二区三区四区乱码| 大学生高清一级毛片免费| ssswww日本免费网站片| 亚洲欧洲国产成人精品| 亚洲国产人成精品| 国产成人精品久久免费动漫| 青青视频免费在线| 亚洲高清中文字幕综合网| 免费jjzz在线播放国产|