Показать сообщение отдельно
Старый 23.05.2012, 14:31   #4
radiobutton
Бывалый
 
Регистрация: 16.09.2011
Сообщений: 863
Написано 257 полезных сообщений
(для 546 пользователей)
Ответ: трансформация 1D массива в nD массив

входные данные:
int[] size - массив в котором размерности. Он известен заранее.
int[] val - массив в котором координаты нужного элемента.
Последний элемент size[size.Lenght-1] хоть в алгоритме и не используется, но он нужен будит для проверки, что val[i] < size[i].
public int GetIndex(int[] val)
{
int q=1;
int p=val[0];

for(int i=0;i<val.lenght-1;i++)
{
    q*=size[i];
    p+=q*val[i+1];
}
return Massiv[p-1];
}
(Offline)
 
Ответить с цитированием