Почему моя функция возвращает только вектор длины 930-50 в R? - PullRequest
2 голосов
/ 24 октября 2019

У меня есть функция, которая предназначена для симуляции игры Chuck-a-luck. В качестве средства эмпирического отображения ожидаемого значения ставки я бы хотел вектор, содержащий результат 1000 ставок. Я придумал следующее:

chuck.a.luck.wager.game.limit.record <- function(bankroll) {
games = 0 
changes = vector()

repeat{
   games <- games + 1
   results <- 0
   bankroll <- bankroll - 10
   pred = sample(1:6, 1)
   rolls = n.di.roll(3,6)

   if (rolls[1] == pred) {results <- results +1}
   if (rolls[2] == pred) {results <- results +2}
   if (rolls[3] == pred) {results <- results +3}

   minus_10 = -10
   plus_10 = 10
   plus_20 = 20
   plus_100 = 100



   if (results == 1) {bankroll <- bankroll + 20;
   changes <- append(changes, plus_10)}
   else if (results == 2) {bankroll <- bankroll +30;
   changes <- append(changes, plus_20)}
   else if (results == 3) {bankroll <- bankroll + 110;
   changes <- append(changes, plus_100)}
   else if (results == 0) {changes <- append(changes, minus_10)}



   if (games == 1000)
   {
        break
     }



 }
 return(changes)}

Я прошу прощения за код спагетти (я обычно использую Python). Однако, когда я создаю экземпляр функции, он возвращает вектор переменной длины, например, 930, 940, 950, в отличие от желаемой 1000.

У кого-нибудь есть идеи относительно того, почему это происходит?

1 Ответ

0 голосов
/ 28 октября 2019

Что если более одного из rolls равно pred? Тогда result может быть больше 3 и, таким образом, ничего не добавляется к changes.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...