Я копирую массив и изменяю второй массив. Почему это также изменяет исходный массив, из которого я его скопировал. Код создает массив случайных чисел типа double между заданным диапазоном длины измерения (X). Затем массив копируется в Y. j-й элемент в Y увеличивается на 2,2, а Y отправляется в тестовую функцию schwefel, которая возвращает значение типа double. Перед X, Перед Y и После X все должны иметь одно и то же значение, поскольку X не меняется. Вместо этого, After Y и After X являются новыми значениями. Вот мой код, который вызывает это:
double alpha = 2.2;
X = createArray(rangeMin, rangeMax, dimension);
double[] Y = new double[dimension];
for (int i = 0; i < iterations; i++) {
Y = X;
for (int j = 0; j < dimension; j++) {
System.out.println("Before Y: " + runFunc(Y);
System.out.println("Before X: " + runFunc(X);
Y[j] += alpha;
System.out.println("After Y: " + runFunc(Y);
System.out.println("After X: " + runFunc(X);
Y[j] -= alpha;
}
}
Мой вывод, например:
Before Y: 894.3066859121232
Before X: 894.3066859121232
After Y: 825.661569833059
After X: 825.661569833059