Приведенный ниже код дает вам номер, близкий к pi при запуске программы. Требуется ввести пользователя для количества дротиков, которые вы хотите бросить за испытание, и использует это, чтобы придумать число, близкое к pi. Мне нужно сделать код запущенным для определенного количества проб, но не может показаться, что он работает. Как мне это сделать?Как сделать цикл повторить еще один цикл?
System.out.print("How many darts per trial? ");
int darts = in.nextInt();
System.out.print("How many trials? ");
int trials = in.nextInt();
//The code below this represents 1 trial
for(int i = 0; i < darts; i++)
{
xInt[i] = (Math.random() * (upper - lower)) + lower;
yInt[i] = (Math.random() * (upper - lower)) + lower;
c2[i] = Math.pow(xInt[i], 2) + Math.pow(yInt[i], 2);
c[i] = Math.sqrt(c2[i]);
if(c[i] <= 1)
{
hits++;
}
}
double answer = 4 * ((double)hits/(double)darts);
System.out.println(answer);
Если бы я добавил для цикла для испытаний (см ниже), то он складывает все ответы и печатает сумму
for(int n = 0; n < trials; n++)
{
for(int i = 0; i < darts; i++)
{
xInt[i] = (Math.random() * (upper - lower)) + lower;
yInt[i] = (Math.random() * (upper - lower)) + lower;
c2[i] = Math.pow(xInt[i], 2) + Math.pow(yInt[i], 2);
c[i] = Math.sqrt(c2[i]);
if(c[i] <= 1)
hits++;
}
}
double answer = 4 * ((double)hits/(double)darts);
System.out.println(answer);
Он должен напечатать что-то вроде этого, когда вы завершены.
Trial [1]: pi = 3.11341744
Trial [2]: pi = 3.04824237
Trial [3]: pi = 3.33281081
Trial [4]: pi = 3.40901039
Увеличить значение переменной 'дартс'? –
_... внутри другого для цикла, но это не работает »_ - Покажите, что вы сделали, и объясните, что не работает. Пожалуйста, прочитайте [ask] и посетите [help], чтобы узнать, как использовать этот сайт. –
Чтобы уточнить - это оценка Монте-Карло pi, у которой у вас есть определенное конкретное количество дротиков, которое вы хотите запустить * N * раз, или это то, что вы хотите добавить больше дротиков? – Makoto