数组是一个“列表列表”,每个级别的列表长度相同。The size (sometimes called the "shape") of a-然后,维度数组表示为。最常见的阵列类型遇到的是二维矩形阵列具有列和排。如果,结果是一个方形阵列。有时,数组中元素的顺序很重要(如矩阵),而在其他时候,数组是等效的模反射(在正方形阵列的情况下是旋转)被认为是相同的(如幻方或素数数组).
在Wolfram语言,深度数组使用嵌套列表表示,并且可以使用命令生成阵列[一,我,j, ...]. 类似地,数组的维数可以使用尺寸[t吨],和命令阵列Q[快递]测试表达式是否为完整数组。举个例子
t=数组[a,{2,2,3}]
给出了深度-4列表
{{{a[1,1,1,1],a[1,1,2],a[11,1,3]},{a[1,1,2,1],a[1,1,1,2],a[11,1,2,3]}},{{a[1,2,1,1],a[1,2,1,2],a[1,1,2,3]},{a[1,2,2,1],a[1,2,2],a[12,2,3]}}},{{{a[2,1,1,1],a[2,1,1,2],a[2,1,1,3]},{a[2,1,2,1],a[2,12,2],a[2,1,2,3]}},{{a[2,2,1,1],a[2,1,2],a[22,1,3]},{a[2,2,2,1],a[2,2,2,2],a[22,2,3]}}}}
带尺寸2,2, 2, 3.
为了详尽地列出给定形状的不同数组的数量,每个元素都是可能的选择,运行每个案例并检查看看它是否等同于之前的一个已经差不多一样有效了可以这样。运行时间必须至少是答案的数量,事实就是这样接近差异并不显著。
然而,找到数给定形状的可能阵列要容易得多,并且可以使用波里亚枚举定理对于简单的情况数组,即使这样也没有必要,因为只有少数可能的对称类型,允许显式计算可能性。例如,考虑以下情况和 即使和不同的,所以只需要包括反射。以具体案例为例,让和所以数组看起来像
|
(1)
|
其中每个,, ...,可以取1到之间的值.可能的安排总数为(一般情况下)。左右相等的排列数镜像是(一般来说,),因为这个数字等于它们的上下镜像,或者它们的旋转。还有安排(一般来说,)完全对称。
因此,总的来说,确实
|
(2)
|
所以有
|
(3)
|
没有对称性的排列。现在除以每种类型的图像数,结果为具有 即使,是
因此,数字是有序的,“校正”项要小得多订单。