Eh, se volete un po 'di codice ... :-) C è indipendente dal linguaggio abbastanza, vero?
assumere ingresso: posizione [dimensioni]
assumere esiste una tabella maxBound [dimensioni] che contiene i confini massime di ogni dimensione della tabella.
int index = 0;
int multiplier = 1;
for (int i = 0;i < dimensions;i++)
{
index += location[i] * multiplier;
multiplier *= maxBound[i];
}
L'indice si troverà nel campo dell'indice.
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.
Penso che questo abbia senso, ma questo mi sta venendo fuori di testa.