• 技术文章 >后端开发 >Python教程

    python 示例分享---逻辑推理编程解决八皇后

    2016-06-16 08:43:10原创1425
    可以和Haskell , Prolog 一样做到模式匹配,

    建立逻辑推到规则,描述问题,得出答案。

    from pyDatalog import pyDatalog
    
    pyDatalog.create_atoms( 'N, N1, X, Y, X0, X1, X2, X3, X4, X5, X6, X7' )
    pyDatalog.create_atoms( 'ok, queens, next_queen, pred, pred2' )
    
    size = 8
    ok( X1, N, X2 ) <= ( X1 != X2 ) & ( X1 != X2 + N ) & ( X1 != X2 - N )
    
    pred( N, N1 )  <= ( N > 1 ) & ( N1 == N - 1 )
    queens( 1, X ) <= ( X1._in( range( size ) ) ) & ( X1 == X[0] )
    queens( N, X ) <= pred( N, N1 ) & queens( N1, X[:-1] ) & next_queen( N, X )
    
    pred2( N, N1 )   <= ( N > 2 ) & ( N1 == N - 1 )
    next_queen( 2, X ) <= ( X1._in( range( 8 ) ) ) & ok( X[0], 1, X1 ) & ( X1 == X[1] )
    next_queen( N, X ) <= pred2( N, N1 ) & next_queen( N1, X[1:] ) & ok( X[0], N1, X[-1] ) 
    
    print( queens( size, ( X0, X1, X2, X3, X4, X5, X6, X7 ) ) )
    
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:python 八皇后
    上一篇:python采集博客中上传的QQ截图文件 下一篇:Python下singleton模式的实现方法
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• Python编码规范知识点整理• 完全掌握Python自动操作GUI之PyAutoGUI• 一文搞懂python中Tkinter的使用• 聊聊利用python怎么读取mat文件内容(matlab数据)• Python可视化总结之matplotlib.pyplot基本参数详解
    1/1

    PHP中文网