8

के रैखिक सिमुलेशन मैं जानता हूँ कि एक रेखीय सरणी एक रेखीय सूचकांक के रूप में [x + y * width] का उपयोग करने में एक 2d सरणी अनुकरण करने के लिए कैसे।बहुआयामी सरणी

मैं 3 डी सरणियों को यह विस्तार कर सकते हैं: [x + y * width + z * width * height]

वहाँ एन आयामी सरणी के लिए एक सामान्य सूत्र है?

मैं एक भाषा-नास्तिक जवाब के लिए देख रहा हूँ।

उत्तर

7

ज़रूर। बस अपने उदाहरण का विस्तार देता है x + y*width + z*width*height + w*width*height*depth + ...

दूसरे शब्दों में dim1 + dim2*size1 + dim3*size1*size2 + dim4*size1*size2*size3 + ...

1

एह, अगर आप कुछ कोड चाहते हैं ... :-) सी भाषा-नास्तिक के लिए पर्याप्त है, फिर?

इनपुट मान लें: स्थान [आयाम]

मान लें एक मेज मौजूद maxBound [आयाम] तालिका के प्रत्येक आयाम की अधिकतम सीमा नहीं मौजूद है।

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. 

मैं इस समझ में आता है लगता है, लेकिन यह सिर्फ मेरे सिर के ऊपर से बाहर आ रहा है।

संबंधित मुद्दे