У меня есть цикл for, включающий предложения «if» и «while», написанные для вопроса. Предполагается сделать 1000 симуляций с некоторыми условиями. Я думаю, что это не очень сложный цикл, но он работал почти 16 часов, не показывая результата или не выдавая ошибку / предупреждение (а маленький красный знак остановки показывался все это время), и я чувствую, что мой Ноутбук замедлился с тех пор, как я запустил цикл.
Поэтому мне интересно, может ли это случиться на самом деле или что-то не так с моим кодом или ноутбуком. Любая помощь с благодарностью!
Пожалуйста, см. Ниже для кода:
result.Vec <- NULL
for (trials in 1:1000) {
sum <- 0
sum2 <- 0
n <- 0
tmp1 <- sample(x=c(1, 2, 3, 4, 5, 6), size=1, replace=T, prob=c(1/6, 1/6, 1/6, 1/6, 1/6, 1/6))
tmp2 <- sample(x=c(1, 2, 3, 4, 5, 6), size=1, replace=T, prob=c(1/6, 1/6, 1/6, 1/6, 1/6, 1/6))
sum <- tmp1 + tmp2
if (sum == 7 || sum == 11) {
n <- 1
} else if (sum == 2 || sum == 3 || sum == 12) {
n <- 0
} else {
while (sum2 != sum || sum2 != 7) {
tmp1 <- sample(x=c(1, 2, 3, 4, 5, 6), size=1, replace=T, prob=c(1/6, 1/6, 1/6, 1/6, 1/6, 1/6))
tmp2 <- sample(x=c(1, 2, 3, 4, 5, 6), size=1, replace=T, prob=c(1/6, 1/6, 1/6, 1/6, 1/6, 1/6))
sum2 <- tmp1 + tmp2
if (sum2 == sum) {
n <- 1
} else if (sum2 == 7) {
n <- 0
}
}
}
result.Vec <- c(result.Vec, n)
}
Пожалуйста, см. Ниже вопрос, для которого мой цикл используется в качестве справочного (не ища решения этой проблемы):
Игра в кости в кости играется следующим образом. Игрок бросает две кости, и если сумма составляет семь или одиннадцать, она выигрывает. Если сумма равна двум, трем или двенадцати, то она проигрывает. Если сумма является чем-то еще, то она продолжает бросать, пока она или бросает это число снова (в этом случае она выигрывает), или она бросает семерку (в этом случае она проигрывает). Рассчитайте вероятность того, что игрок выиграет, основываясь на 1000 симуляциях.