- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
前段时间我写了一个简单的 python 程序来暴力破解驱动器 ya nuts 拼图的单一解决方案。
(来源:tabbykat.com)
拼图由 7 个六边形组成,上面有数字 1-6,所有拼图都必须对齐,以便每个数字都与下一个拼图上的相同数字相邻。
拼图有 ~1.4G
非唯一可能性:您有 7!
选项来按顺序对拼图进行排序(例如,center=0
,top=1
,继续按顺时针顺序...)。对碎片进行排序后,您可以以 6 种方式旋转每个碎片(每个碎片都是一个六边形),因此对于 7 个碎片的给定排列,您可以获得 6**7
可能的旋转。总计:7!*(6**7)=~1.4G
可能性。以下 python 代码生成这些可能的解决方案:
def rotations(p):
for i in range(len(p)):
yield p[i:] + p[:i]
def permutations(l):
if len(l)<=1:
yield l
else:
for perm in permutations(l[1:]):
for i in range(len(perm)+1):
yield perm[:i] + l[0:1] + perm[i:]
def constructs(l):
for p in permutations(l):
for c in product(*(rotations(x) for x in p)):
yield c
但是,请注意,这个谜题只有 ~0.2G
unique 可能的解决方案,因为您必须将可能性的总数除以 6,因为每个可能的解决方案都等同于5 种其他解决方案(只需将整个拼图旋转 1/6 圈)。
有没有更好的方法来为这个谜题生成唯一的可能性?
最佳答案
要仅获得唯一的有效解决方案,您可以将棋子的方向固定在中心。例如,您可以假设中间棋子上的“1”始终指向“上”。
如果您还没有这样做,您可以通过在放置每个棋子后检查有效的解决方案来提高程序的效率。一旦您以无效方式放置了两 block 棋子,就无需枚举所有其他无效组合。
关于python - 为 "drive ya nuts"拼图生成所有唯一组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2600924/
我正在使用Apache Nutch 2.3。我有一个由4个Hadoop(1.2.1)节点组成的小型集群。我正在运行一个Crawler实例。每天大约爬行3万至5万页。我每天必须抓取更多页面(假定值约为1
不知道我做错了什么,但我的脚本停在这个有趣的 localCompare 行。不知道为什么:( function enableTimeInput() { var e = document.getEl
有人可以向我指出可以解释我所看到的内容的文档吗? Jupyter notebook 中的粉红色内容让我觉得有些不对劲。 使用 PyMC3(顺便说一句,这是类练习,我不知道自己在做什么)。 我输入了数字
我尝试在 Google Fusion Tables 中对 NUTS 代码进行地理编码(在后台使用某些 Maps API),但尽管没有收到错误消息或警告,但它无法识别这些空间单位。 NUTS区号是相当标
我正在尝试从 a paper from Richard McElreath 复制数据分析,其中他用分层零膨胀 Gamma 模型拟合数据。该数据是关于 15000 次狩猎之旅的狩猎返回,来自大约 150
我无法让它运行,因为 java 只是在等待 ffmpeg。但是 ffmpeg 不提供输入,也不提供错误流。它只是运行,但什么也不做。 "System.out.println("command:.."i
前段时间我写了一个简单的 python 程序来暴力破解驱动器 ya nuts 拼图的单一解决方案。 (来源:tabbykat.com) 拼图由 7 个六边形组成,上面有数字 1-6,所有拼图都必须对齐
我已经实现了 Bayesian Probabilistic Matrix Factorization算法使用 pymc3在 Python 中。我还实现了它的前身,概率矩阵分解(PMF)。 See my
我有一个用于学习只有一个隐藏层的贝叶斯网络的分层模型。网络参数分为 4 组输入到隐藏和隐藏到输出的权重和偏差。在每个参数组上定义高斯先验。超参数,即这些先验的标准差,具有参数 alpha=1 的 Ga
我正在使用Nomenclature of Units for Territorial Statistics (NUTS)国家次区域的数据(即州/部门、小于国家但大于城市的行政区域)。我从官方网站将它们
这个问题已经有答案了: Why is scanf() causing infinite loop in this code? (16 个回答) 已关闭 4 年前。 如果你在这个脚本中输入一个字符串,程
我有一个导航菜单,悬停时,我希望下拉菜单显示在标题下方。我将我的位置设置为标题相对位置,这样我的下拉列表将定位为绝对位置,但实际发生的是我的标题下方的元素也受到了影响,老实说我不知道我的代码发生了
我想用Google新闻之类的Java开发应用程序。 为此,我从头开始,并与Nutch进行基本设置。 我已经完成安装,但是在一个命令中出现错误。 这里是关于技术的简要介绍。我在用 -nutch 1.11
我之前实现了原始的 Bayesian Probabilistic Matrix Factorization (BPMF) pymc3 中的模型。 See my previous question供引用
我是一名优秀的程序员,十分优秀!