【发布时间】:2019-03-28 04:05:20
【问题描述】:
我想建立一个包含位(布尔)值的 3x3 立方体的集合。我希望该集合包含所有可能的值组合。所以对于 27 位,每个位打开或关闭的所有可能组合。
var dimension = 3;
var cubes = new List<bool[,,]>();
// iterate from (0,0,0) to (3,3,3)
var cube = new bool[dimension, dimension, dimension];
for (int i = 0; i < dimension; i++)
{
for (int j = 0; j < dimension; j++)
{
for (int k = 0; k < dimension; k++)
{
cube[i, j, k] = true;
}
}
}
cubes.Add(cube);
这将创建一个立方体,其中每个单元格都设置为 true。如何创建所有其他立方体来表示每个可能的排列?
【问题讨论】:
-
立方体是定向的吗?
-
你能澄清一下这个问题吗?创建一些多维数据集很好,但我不清楚任意多维数据集的内容是什么(或者实际上该多维数据集的目的是什么) - 请注意,27 位中有 1.34 亿个排列......现在每个多维数据集大约需要 120 个字节,所以……这是 16 GiB 的数据(你的意思是 9 位吗?)
-
只需创建一个从
0x000 0000 0000 0000 0000 0000 0000到0x111 1111 1111 1111 1111 1111 1111的循环,然后为该数字的每一位分配一个立方体结构中的位置。您拥有的每个立方体都可以轻松地用一个数字表示。 -
你知道那是一亿个立方体,对吧?这听起来像是一个经典的“XY”问题。你有一个真正的问题,你对如何解决它有一个疯狂的想法,现在你要求我们帮助你解决你的疯狂想法。您要解决的真正问题是什么?
-
另外,您说您正在从 (0,0,0) 迭代到 (3,3,3),但实际上您正在迭代到 (2, 2, 2),这是正确的。跨度>
标签: c#