У меня есть этот программный код, который пытается создать нечто похожее на симуляцию Монте-Карло.По сути, игрок начинает с данной ставки в £ и ставит справедливые ставки в £ 1, пока не разорится или не достигнет цели.
Программный код работает, как и ожидалось, но у меня проблема с оператором "int cash = кол;"Я хотел бы знать, как переменная «наличные деньги» обновляется правильно с каждой итерацией.
Меня смущает, почему он не сбрасывается обратно к начальному значению "кола", которое является пользовательским вводом вне основного цикла for.Например, если цель равна 500, а ставка равна 100, почему наличные не всегда остаются равными 100, и если это так, как они достигнут цели 500?
public static void monteCarlo() {
Scanner input = new Scanner(System.in);
System.out.println("Please enter stake, goal, " + " and number of tries");
int stake = input.nextInt();
int goal = input.nextInt();
int tries = input.nextInt();
int wins = 0;
// repeat experiment
for (int i = 0; i < tries; i++) {
// do one gambler's ruin experiment
int cash = stake;
while (cash > 0 && cash < goal) {
// flip coin and update
if (Math.random() < 0.5) cash++;
else cash--;
}
if (cash >= goal) {
wins++;
}
}
System.out.println(wins + " wins of " + tries);
}