У меня есть апплет, который позволяет пользователю определять значения для 10 переменных, которые могут быть массивами.Затем я хочу, чтобы программа перебирала все возможные комбинации, а затем сохраняла вычисления в переменную.
Ранее я жестко запрограммировал ее для инициализации массива результатов SIGMA, перебирая все переменные независимо от того,является вектором или единственным значением, IE:
SIGMA = new Array(A.length);
for (i1=0; i1<A.length; i1++) {
SIGMA[i1] = new Array(B.length);
for (i2=0; i2<B.length; i2++) {
SIGMA[i1][i2] = new Array(C.length);
for (i3=0; i3<C.length; i3++) {
...
}
}
}
Это приводит к 10-мерному массиву SIGMA, что делает обработку действительно медленной, если несколько или более переменных являются массивами.
ЧтоЯ хотел бы сделать, чтобы он инициализировал SIGMA только для тех переменных, которые являются массивом, а не единственным значением.Поэтому, если все переменные представляют собой одно число, кроме двух, скажем, X и Y, то я бы хотел получить:
SIGMA = new Array(X.length);
for (i1=0; i1<X.length; i1++) {
SIGMA[i1] = new Array(Y.length);
}
Однако я не совсем уверен, как лучше всего это сделать.будет, поскольку число циклов for будет зависеть от количества переменных, которые являются массивами.Я думаю, мне нужно либо использовать рекурсивную функцию, либо каким-то образом включить цикл while.
У кого-нибудь есть какие-нибудь хорошие идеи о том, как это можно сделать?Спасибо!