Я пытаюсь запустить свою программу в течение четырех вложенных циклов для вычисления относительной ошибки введенного пользователем числа путем рисования из массива {-5, -4, -3, -2, -1, -1/2, -1/3, -1/4, 0, 1/4, 1/3, 1/2, 1, 2, 3, 4, 5}. Вот выдержка из этого задания:Зацикливание через массив для вычисления относительной ошибки
«Рассмотрим формулу де Жагера w^ax^на^cz^d, где каждый из a, b, c и d является одним из 17 чисел {-5, - 4, -3, -2, -1, -1/2, -1/3, -1/4, 0, 1/4, 1/3, 1/2, 1, 2, 3, 4, 5} «Очаровательная теория» утверждает, что формулу де Жагера с вашими четырьмя личными числами можно использовать для приближения μ в пределах от 1% относительной погрешности. Например, предположим, что вы выбираете приблизительное среднее расстояние от Земли до Луны в миль: μ = 238 900. И предположим, что вы являетесь поклонником спорта OSU, поэтому ваши личные номера - это число побед в последнем сезоне национального чемпионата OSU (14, а также рекорд за победы в год любой командой колледжа), посадочная способность стадиона Огайо (102 329), год четырех золотых медалей Джесси Оуэнса в Берлине (1936) и номер вашего трикотажа, когда вы играли в хоккей на средней школе (13). Затем значение 14-5102329119361/2134 составляет около 239,103, что составляет около 0,08% μ.
Ваша задача - создать программу Java, которая запрашивает у пользователя, какая константа μ должна быть аппроксимирована, а затем, в свою очередь, запрашивает каждый из четырех личных чисел w, x, y и z. Затем программа должна вычислять и сообщать значения показателей a, b, c и d, которые приносят формулу де Ягера как можно ближе к μ, а также значение формулы waxbyczd и относительную погрешность приближения к ближайшая сотая часть процента. »
Код ниже - это то, что у меня есть до сих пор. Я понимаю, что он не работает в текущем состоянии, но я надеюсь, что я по крайней мере на правильном пути. не уверен, куда идти отсюда или как исправить мои вложенные циклы. Любая помощь очень ценится, поскольку я действительно борюсь с тем, как это должно работать. Я также понимаю, что для циклов было бы лучше для такого вложенного цикла, но мне нужно используйте педали, пока я не смогу использовать их.
import components.simplereader.SimpleReader;
import components.simplereader.SimpleReader1L;
import components.simplewriter.SimpleWriter;
import components.simplewriter.SimpleWriter1L;
public final class ABCDGuesser1 {
private ABCDGuesser1() {
}
public static void main(String[] args) {
SimpleReader in = new SimpleReader1L();
SimpleWriter out = new SimpleWriter1L();
out.print("Enter a positive real-valued universal physical or mathematical constant: ");
double mu = in.nextDouble();
out.print("Enter four postitive numbers not equal to 1: ");
double w = in.nextDouble();
double x = in.nextDouble();
double y = in.nextDouble();
double z = in.nextDouble();
int[] charm = { -5, -4, -3, -2, -1, -1/2, -1/3, -1/4, 0, 1/4,
1/3, 1/2, 1, 2, 3, 4, 5 };
int a = 0;
int i = 0;
while (i < charm.length) {
a = charm[i];
double max1 = (Math.pow(w, a));
i++;
int b = 0;
int j = 0;
while (j < charm.length) {
b = charm[j];
double max2 = (Math.pow(x, b));
j++;
int c = 0;
int k = 0;
while (k < charm.length) {
c = charm[k];
double max3 = (Math.pow(y, c));
k++;
int d = 0;
int n = 0;
while (n < charm.length) {
d = charm[n];
double max4 = (Math.pow(z, d));
n++;
}
out.print(max1);
}
}
}
in.close();
out.close();
}
}
Ну, для одного вы должны работать с двойным [] как int -1/2 или любая фракция 1/4 будет округлена, чтобы быть int. –
В чем вопрос? – immibis
Также вы узнали о циклах 'for'? Они позволят вам немного сократить код. – immibis