Я работаю над проектом Эйлер проблема номером 205, который гласит:Вероятности на протяжении многих игр
Петр имеет девять четырехсторонний (пирамидальные) кости, каждый с лицами с номерами 1, 2, 3, 4 . Колин имеет шесть шестигранных (кубических) кости, каждая из которых с лицами, пронумерованных 1, 2, 3, 4, 5, 6.
Питер и Колин закатывают кости и сравнить итоги: самые высокие полные победы , В результате получается ничья, если итоговые значения равны.
Какова вероятность того, что Pyramidal Пит бьет кубический колин? Дайте ваш ответ округлены до семи знаков после запятой в виде 0.abcdefg
Моя первая попытка (ниже) вовлеченного имея 1000 «игры», где каждая игра была 1,000,000 по очереди. Затем возьмем среднее количество всех игр. Я постоянно получаю результаты в области .559, но когда ответ должен быть до 7 знаков после запятой, это не так близко.
public class pe205 {
public static void main(String[] args) {
pe205 p = new pe205();
double sum = 0.0;
for(int i=0; i < 1000; i++){
sum += p.determineProbability();
}
System.out.println(sum/1000.0);
} // end main
public double determineProbability(){
int peterWins = 0;
int colinWins = 0;
for(int i=0; i < 1000000; i++){
int peterSum = 0;
for(int j=0; j < 4; j++){
Random r = new Random();
peterSum += r.nextInt(9);
}
//System.out.println(peterSum);
int colinSum = 0;
for(int j=0; j < 6; j++){
Random r = new Random();
colinSum += r.nextInt(6);
}
//System.out.println(colinSum);
if(peterSum > colinSum){
peterWins++;
}
if(colinSum > peterSum){
colinWins++;
}
}
double peteBeatsColin = (double)peterWins/(double)(colinWins + peterWins);
return peteBeatsColin;
}
} // end class
Я читал о методе Монте-Карло. Будет ли это ситуацией, когда это будет полезно, и если да, может кто-нибудь дать мне короткую прогулку? Или это то, что мне не хватает довольно очевидного математического решения?
Я хотел бы сказать, что мне нравится вызов этих проблем, и я не ищу ответа, просто немного толкнув в правильном направлении.
Как правило, это не тот случай, когда Монте-Карло является практическим решением, когда требуется такое количество знаков после запятой. Подумайте о проблеме иглы Буффона. Он сходится к pi, но очень медленно (если только вы не Марио Лаззарини). – jason
Ошибка конвергенции является квадратным корнем [error ~ 1/sqrt (N)], поэтому вам, возможно, нужны контрольные точки O (10^12) –