时间:2021-05-22
可以和Haskell , Prolog 一样做到模式匹配,
建立逻辑推到规则,描述问题,得出答案。
from pyDatalog import pyDatalogpyDatalog.create_atoms( 'N, N1, X, Y, X0, X1, X2, X3, X4, X5, X6, X7' )pyDatalog.create_atoms( 'ok, queens, next_queen, pred, pred2' )size = 8ok( 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 ) ) )声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
猜牌问题是一个很注重逻辑思维的问题,假设自己逻辑推理能力比较差的话,很难找到思路与解开这道题,今天小编就告诉大家这道题应该如何推理成功。 问题: S先生
本文为大家分享了python八皇后问题的解决方法,供大家参考,具体内容如下题目:给定一个N*N正方形棋盘,在上面放置N个棋子,又叫皇后,使每两个棋子都不在同一条
本文实例讲述了Python基于生成器迭代实现的八皇后问题。分享给大家供大家参考,具体如下:问题:有一个棋盘和8个要放到上面的皇后,唯一的要求是皇后之间不能形成威
本文实例讲述了C语言八皇后问题解决方法。分享给大家供大家参考,具体如下:1.概述:八皇后问题是一个以国际象棋为背景的问题:如何能够在8×8的国际象棋棋盘上放置八
这篇文章主要介绍了如何基于java语言实现八皇后问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下八皇后问题