Potrebbe essere meglio chiamato una matrice o array multidimensionale.
Si dovrebbe notare che, in generale, tali matrici multidimensionali contengono molti elementi. Ad esempio, una serie di dimensioni 10 20 30 contiene 10 * 20 * 30 che è 6000 elementi, ed è considerata piccola (poiché 10, 20 e 30 sono piccoli). Ma una serie di dimensioni 8 8 8 8 8 8 8 8 8 8 (dieci occorrenze di 8) ha 2 30 elementi (se ogni elemento era un 32 bit int
cioè 4 byte, che richiede 4Gbyte di RAM) e ciascuna dimensione individuale è 8, un numero piuttosto piccolo.
Per prima cosa devi stimare la quantità di elementi da conservare . Potrebbe essere abbastanza grande da non adattarsi al tuo computer (quindi il tuo problema è praticamente irrisolvibile, o non rintracciabile, e dovresti cambiare completamente il tuo approccio o ottenere un computer molto più grande). Leggi la la tesi di Cobham e esplosione combinatoria . Se vuoi mantenere tutti gli elementi avrai bisogno di una matrice multidimensionale, come risposta di Kasper van den Berg .
A volte sai che la griglia o la matrice è sparse (la maggior parte degli elementi sono 0) o che ha qualche altra proprietà (ad es. è simmetrica , anti-simmetrico , triangolare ). Quindi devi specificare le sue proprietà nella domanda (quindi in generale devi chiediti: quali sono le proprietà che conosco di una griglia simile? come posso lo caratterizzi? ).
Gli array sparsi potrebbero essere rappresentati da tabelle hash o mappe (mappatura di tuple di indice su elementi diversi da zero).
Leggi anche i grafici e amp; hypergraphs & relazioni (e forse anche motori di inferenza ). Forse potrebbero essere più adatti al tuo problema concreto (che hai dimenticato di menzionare)
Il blog di J.Pitrat ha alcuni spunti interessanti, in particolare: È possibile definire un problema?