我想生成一个文本文件,其中包含所有19,683个 Tic-Tac-
Toe电路板布局,结构为0 =空白,1 = X和2 =O。不幸的是,数学不是我的强项,我似乎找不到任何示例在任何地方。
我向你保证,这不是为了功课。我打算通过Minimax计算器运行此数据,以便生成包含RGB值的图像,该值表示基于电路板设置的最佳移动。我正在为不支持功能的平台开发井字游戏(它是事件驱动的),因此我将游戏中的板子转换为数字,然后在图像中查找像素的RGB,以指示最佳效果是。这是一个厚脸皮的解决方法,但是它不需要比145x145像素的图像更多的RAM(145x145
= 21,025,因此每个像素有效地代表了基于电路板的推荐移动)。这也意味着我不必花费CPU时间,这是另一个优点。
由于您需要电路板布局,因此数量很少(19683年)。
您可以通过蛮力生成所有这些。每个盒子只有3种可能性。并且有9个盒子,只需遍历所有盒子。
编辑:
int c = 0;
while (c < 262144){
bool valid = (c & 3) < 3;
valid &= ((c >> 2) & 3) < 3;
valid &= ((c >> 4) & 3) < 3;
valid &= ((c >> 6) & 3) < 3;
valid &= ((c >> 8) & 3) < 3;
valid &= ((c >> 10) & 3) < 3;
valid &= ((c >> 12) & 3) < 3;
valid &= ((c >> 14) & 3) < 3;
valid &= ((c >> 16) & 3) < 3;
if (valid){
int i = c;
int j = 0;
while (j < 9){
cout << (i & 3) << " ";
i >>= 2;
j++;
}
cout << endl;
}
c++++;
}
这将打印出所有19,683个电路板布局。我不确定您想要什么格式,但是从输出中提取出来应该很容易。
我有五个属性的列表,每个属性有五个不同的值。我想生成它们的笛卡尔乘积,并过滤所有独特的排列。 一些背景: 我需要它们作为我的输入值来解决逻辑难题。在那里我对照他们检查规则以找到正确的解决方案。 也许一个简化的例子就能说清楚。 数据: 数据的笛卡尔乘积: 我想要的是: 我不想要的是: 我不希望同一个值多次出现。位置很重要,因此它应该具有置换性质,对于包含五个元素的列表,它应该具有置换性质。我猜输出大
问题内容: 假设我们有一个字母“ abcdefghiklimnop”。如何以有效的方式递归地生成排列在FIVE组中的此字母重复的排列? 我几天来一直在为此苦苦挣扎。任何反馈将有所帮助。 本质上,这与以下操作相同:生成给定字符串的所有排列 但是,我只希望整个字符串的长度为5。我还无法弄清楚这一点。 因此,对于“ abcdefghiklimnop”的所有长度为5的所有子串,请查找子串的排列。例如,如果
我有一个data.table,我需要生成另一个data.table,它只列出每列的唯一值。一个例子: 从 到 实现这一点最有效的方法是什么?
问题内容: 如何在Python中生成一个列表的所有排列,独立于该列表中元素的类型? 例如: 问题答案: 从Python 2.6(如果你使用的是Python 3)开始,你可以使用标准库工具:itertools.permutations。 如果你出于某种原因使用旧版Python(),或者只是想知道它的工作原理,那么这是一种不错的方法,取自 http://code.activestate.com/rec
最近,我参加了一次面试,遇到了一个关于哈希碰撞的很好的问题。 问题:给出一个字符串列表,把字谜一起打印出来。 示例: I/P: 、 、 、 、 、 、 、 、 、 、 、 、 {行为,上帝,动物,狗,猫} O/P: 演戏,猫,狗,上帝 我要创建hashmap并将单词作为键,将值作为字母表列表 为了避免冲突,我想为字母表生成唯一的哈希代码,而不是排序并使用排序后的单词作为
我对Haskell有点陌生,我试图生成列表的所有连续子列表。 我目前有以下几点: 我知道上面的函数会在删除最后一个元素的情况下生成子列表,但我不知道如何完成伪代码。 我的伪代码基本上是, 拿着完整的清单,去掉尾巴。将(x:xs)的xs传递到列表子列表中 例如,xs=[1,2,3][xs]列表子列表(init xs)将生成[1,2,3,4]、[1,2,3]、[1,2]、[1]、[1]、[1],[1]
问题内容: 我正在使用Python 2.7。 我有一个清单,我想要所有可能的有序组合。 这将给出以下输出: 但是我只希望输出是与列表相同顺序的组合。例如删除,,以及因为这些都不是正确的顺序相比列表。 我想通了用这个代替: 给我我想要的输出: 但是Python中是否有任何我想要的内置方法? 问题答案: 我相信您正在寻找的是原始列表中的所有可能 片段 。您所需的输出转换成切片是这样的: 因此,您应该尝
我的数组包含从0到整数的随机唯一数。最大值。 如何生成唯一的id/签名(int)来唯一地标识每个数组,而不是搜索每个数组并检查每个数字。 例如 每个数组可以有不同的长度,但数字在数组中不重复,可以在其他数组中重复。每个数组的唯一id的目的是通过id来识别它,以便快速进行搜索。数组包含组件的id,数组的唯一签名/id将标识其中包含的组件。 此外,无论数组中的值的顺序如何,生成的id应该是相同的。像{