문제

나는 선형 배열에서 2D 배열을 시뮬레이션하는 방법을 알고 있습니다. [x + y * width] 선형 색인으로.

이것을 3D 어레이로 확장 할 수 있습니다. [x + y * width + z * width * height].

n- 차원 배열에 대한 일반적인 공식이 있습니까?

나는 언어에 대한 답변을 찾고 있습니다.

도움이 되었습니까?

해결책

확신하는. 예제를 확장하면됩니다 x + y*width + z*width*height + w*width*height*depth + ...

다시 말해, dim1 + dim2*size1 + dim3*size1*size2 + dim4*size1*size2*size3 + ...

다른 팁

어, 코드를 원한다면 ... :-) C는 언어가 충분하지 않습니까?

입력을 가정 : 위치 [치수

테이블이 테이블의 각 치수의 최대 경계를 포함하는 최대 바운드 [치수]가 있다고 가정합니다.

int index = 0;
int multiplier = 1;
for (int i = 0;i < dimensions;i++)
{
  index += location[i] * multiplier;
  multiplier *= maxBound[i];
}

인덱스는 인덱스 필드에서 끝납니다.

Test:
location = [3,4,5]
maxBound = [10,20,30]
loop initial: index = 0, multiplier = 1.
loop i=0: index = 3, multiplier = 10.
loop i=1: index = 43, multiplier = 200.
loop i=2: index = 1043, multipler = 6000.

나는 이것이 의미가 있다고 생각하지만 이것은 단지 내 머리 꼭대기에서 나오고있다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top