Код для подсчета раз, чтобы получить все головы или все хвосты, возвращается только раз, чтобы получить головы - PullRequest
1 голос
/ 13 апреля 2020

Я очень рад сказать, что у меня возникла первая проблема с подбрасыванием монеты. Я считаю, сколько раз требуется, чтобы получить все головы или все хвосты в испытании 7 сальто. Теоретически, чтобы получить все головы или все хвосты, потребуется примерно 64 раза.

coin.counter = 0                         ## initialize global counting variable
heads.tails = 0                          ## initialize global variable
while(heads.tails != 7|0){               ## do while not 7 or 0
  heads.tails = rbinom(1,7,.5)           ## 1 trial, 7 flips
  if(heads.tails != 7|0)                 ### NOT equal to 0 or 7
    coin.counter = coin.counter + 1 
  else 
    break
}

К сожалению, я думаю, что получаю только одно значение, потому что, продолжая запускать этот скрипт, я продолжаю получать монеты. значения счетчиков в середине 100-х годов.

Любая критика или пламя приветствуются. Это мой тест на обучение, поэтому помогите мне выучить:)

post edit: Спасибо всем за помощь. Отлично.

1 Ответ

0 голосов
/ 14 апреля 2020

Решение проблемы состояло в том, чтобы установить Heads.tails на НЕ 0. Каждый раз, когда я добавлял 0 к циклам в качестве критерия принятия решения, программа мгновенно останавливалась, потому что переменная была уже 0. Я не умный человек, но я стараться изо всех сил.

Публикация решения и, надеюсь, это поможет кому-то еще в дальнейшем.

coin.counter = 0
### This was globally set to 0 and consistently shorting my program
heads.tails = 10  ## <- Set to dummy value so it quits messing with me

#####Loops##### 
while(heads.tails != 7 & heads.tails != 0){    ## Courtesy 2revans and MrFlick 
  heads.tails = rbinom(1,7,.5)                 ## 1 trial, 7 flips
  print(heads.tails)
  if(heads.tails != 7 & heads.tails != 0){
     coin.counter = coin.counter + 1           ### NOT equal to 0 or 7
  }       
  else {
   break 
  }
}
...