Algorithm 超立方体中坐标数的计算

Algorithm 超立方体中坐标数的计算,algorithm,math,Algorithm,Math,在N维网格中,单元的坐标表示为X1、X2、…、XN。任何坐标为负的单元格均为白色。原始单元格(坐标为零的单元格)的颜色为黑色。(X1,X2,…,XN)中单元的颜色取决于具有坐标(X1-1,X2,…,XN)、(X1,X2-1,…,XN)、(X1,X2,…,XN-1)的N个单元。当且仅当N坐标中黑色单元格的数量为偶数时,单元格为白色,否则单元格为黑色 现在,给定子超立方体的起始坐标和结束坐标。所有坐标都将是完成查询的非负整数。我们要计算这个超立方体中有多少超单元是黑色的 请给我一些提示、参考资料或任

在N维网格中,单元的坐标表示为X1、X2、…、XN。任何坐标为负的单元格均为白色。原始单元格(坐标为零的单元格)的颜色为黑色。(X1,X2,…,XN)中单元的颜色取决于具有坐标(X1-1,X2,…,XN)、(X1,X2-1,…,XN)、(X1,X2,…,XN-1)的N个单元。当且仅当N坐标中黑色单元格的数量为偶数时,单元格为白色,否则单元格为黑色

现在,给定子超立方体的起始坐标和结束坐标。所有坐标都将是完成查询的非负整数。我们要计算这个超立方体中有多少超单元是黑色的


请给我一些提示、参考资料或任何能帮助我解决问题的东西。

蛮力算法:

fill the hypercube (the needed part) with value 'unknown'.
color[00000] = 1  #black

sum = 0
for each cell in sub-hypercube:
   sum += getcolor(cell)
   return sum

getcolor(cell):
   if color[cell] == unknown
      c = 0  #white
      for each neighbour cell in decreasing direction within non-negative boundary:
          c = c xor getcolor(neighbour)
      color[cell] = c
   return color[cell]

这条规则产生了众所周知的分形-

以下是它的2D图像:


什么意思
任何带有负坐标的单元格
?任何至少有一个负坐标或只有负坐标的单元?任何单元坐标由n个分量组成。这是指如果任何一个分量是负数,那么超立方体的起始坐标和结束坐标是多少?我认为超立方体是
{0,1}^n
(即只有长度为n的0-1元组)。你对(子)超立方体的定义如何?“开始”和“结束”坐标是给定的,长度为n的0-1元组表示“单位超立方体”。