带数字的彩色方块拼图

2024-09-28 01:24:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我要用Numberjack来解决这个问题,这是一个python的CSP库。 我们有n x m的彩色边正方形。这些正方形必须以nxm网格的方式排列,使正方形的相邻边具有相同的颜色。正方形可以旋转和移动。例如:

enter image description here

我考虑使用4矩阵(一个用于nord,一个用于sud,一个用于west和east side)和一个数字作为颜色。Nord(i,j),West(i,j),East(i,j),Sud(i,j)描述网格上的正方形i,j。 我必须考虑哪些限制条件?在


Tags: 网格颜色方式矩阵数字sidecsp彩色
1条回答
网友
1楼 · 发布于 2024-09-28 01:24:53

因为这听起来像是家庭作业,让我简单介绍一个有效的模型:

将每个给定类型的图块描述为一个五元组(Type,N,E,S,W),其中 Type是此类型平铺的标识符,N,E,S,W是 北面、东面、南面和西面的颜色。对于每种类型的瓷砖, 对于不同的旋转有四个这样的元组。在

用n×m个相似元组(Type,N,E,S,W)表示网格,其中 Type范围覆盖平铺类型标识符,N,E,S,W覆盖颜色。在

然后,您需要三种类型的约束,所有这些约束都应该在Numberjack(和其他有限域样式的解算器)中易于表示:

  • 每个网格元组都匹配一个tile描述符元组
  • 相邻颜色匹配
  • 网格包含每种类型的正确数量的平铺

相关问题 更多 >

    热门问题