Гравець отримує справедливу, шестигранну штамп. Щоб виграти, вона повинна прокатати число, що перевищує 4 (тобто 5 або 6). Якщо вона закатає 4, вона повинна прокататися знову. Які шанси на виграш?
Я думаю, що ймовірність виграти може бути виражена рекурсивно як:
Я як 1 мільйон випробувань на Java, як це:0,3999
import java.util.Random;
public class Dice {
public static void main(String[] args) {
int runs = 1000000000;
int wins = 0;
for (int i = 0; i < runs; i++) {
wins += playGame();
}
System.out.println(wins / (double)runs);
}
static Random r = new Random();
private static int playGame() {
int roll;
while ((roll = r.nextInt(6) + 1) == 4);
return (roll == 5 || roll == 6) ? 1 : 0;
}
}
І я бачу, що можна розширити так:
Але я не знаю, як вирішити цей тип відношення рецидиву, не вдаючись до такого наближення. Це можливо?