<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)站導航:
     

    導航

    統(tǒng)計

    常用鏈接

    留言簿(12)

    隨筆分類(54)

    隨筆檔案(59)

    文章分類(2)

    文章檔案(1)

    相冊

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲精品资源在线| 亚洲A∨无码无在线观看| 亚洲国产品综合人成综合网站| 91成人免费观看在线观看| 久久久久亚洲?V成人无码| 一级毛片免费全部播放| 亚洲精品456播放| 国产精品成人免费观看| 国产亚洲精品国产| 99久热只有精品视频免费看| 亚洲高清资源在线观看| 日韩在线免费视频| 色偷偷亚洲第一综合| 亚洲高清成人一区二区三区 | 亚洲AV中文无码乱人伦在线视色| 国产AV无码专区亚洲AV麻豆丫| www.91亚洲| 丁香花在线视频观看免费| 亚洲黄色片在线观看| 免费观看成人毛片a片2008| 亚洲乱码中文字幕在线| 无码专区一va亚洲v专区在线 | 国产精品免费在线播放| 久久亚洲国产成人亚| 成人免费福利视频| 国产精品国产亚洲区艳妇糸列短篇 | gogo免费在线观看| 久久亚洲免费视频| 最近免费中文字幕大全免费版视频| 亚洲综合激情九月婷婷 | 免费人成在线观看网站视频| 久久久受www免费人成| 99ri精品国产亚洲| 性做久久久久免费看| 中文字幕免费在线看| 亚洲精品亚洲人成在线播放| 亚洲国产成人精品女人久久久| 午夜无码A级毛片免费视频 | 亚洲伊人成无码综合网| 99爱在线精品视频免费观看9| 亚洲变态另类一区二区三区|