美文网首页
八皇后问题haskell版

八皇后问题haskell版

作者: 刘阿斌 | 来源:发表于2017-02-16 11:36 被阅读213次

正在做彩票数据的多维度分析工具,意识到选择一门表现力高的语言非常重要。先问一个问题,如果要找bug的话,你愿意只在5行里找,还是在50行里找呢?这不仅是一个关乎生产力的问题,还是一个软件复杂度到多大就失去可维护性的问题(数据分析是高维度的复杂问题)。下面是一个维度仅为4的数学问题:

把八个皇后在一个八格乘以八格的棋盘上,如果两个皇后同行、同列、同斜线就会攻击,求互不攻击放完八个皇后的解决方案的个数。

haskell版只用了五行(最后一行只是输出):

8*8格子

其它语言需要的行数都挺多,特别点名批评Java

Clojure的表现让我失望  ,行数和Java一样多得惨不忍睹,不过人家解决的是更普适的N皇后问题,不限八个格子。

于是我也写一个普适版:

只是对前3行各加了一个字母m ! 这样看来,haskell的表现力真是完爆Clojure了。


相关文章

  • 八皇后问题haskell版

    正在做彩票数据的多维度分析工具,意识到选择一门表现力高的语言非常重要。先问一个问题,如果要找bug的话,你愿意只在...

  • 11.数据结构—八皇后问题(回溯法)

    11.1 八皇后问题 八皇后问题是以国际象棋为背景的问题:有八个皇后(可以当成八个棋子),如何在 88 的棋盘中放...

  • 算法(03)回溯

    八皇后问题

  • 八皇后问题(N皇后问题)

    八皇后问题是一个经典的递归回溯问题。 描述 八皇后问题是在一个 8*8 的棋盘上放置皇后,要求其放置后满足同一行,...

  • 八皇后问题

    八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在...

  • 八皇后问题

    问题的类别是回溯(backtrace). 回溯通常用递归实现。回溯中注意边界问题,避免越界。同时,剪枝可以减少ca...

  • 八皇后问题

    课堂上老师讲了广度优先搜索算法后让课下实现下八皇后问题,就突发奇想了很多实现方法,这里只把我的实现方式和实现代码粘...

  • 八皇后问题

    问题 八皇后问题是一个古老而著名的问题,是试探法的典型例题。该问题由19世纪数学家高斯1850年手工解决。原题为在...

  • 八皇后问题

    采用试探回溯策略,通过栈记录查找结果,实现八皇后问题求解。 测试代码

  • 八皇后问题

    如何能够在 8×8 的国际象棋棋盘上放置八个皇后,使得任两个皇后都不能处于同一条横行、纵行或斜线上。 先从第一列开...

网友评论

      本文标题:八皇后问题haskell版

      本文链接:https://www.haomeiwen.com/subject/xawcwttx.html