Как я могу использовать оператор if для представления этого сценария? - PullRequest
0 голосов
/ 17 марта 2020

генерирует независимые случайные величины XM ∼ Unif (−25,25) и YM ∼ Unif (−25,25), а затем, если X ^ 2M + Y ^ 2 M ≤ 25 ^ 2, принять (XM, YM) в качестве результата, но если X ^ 2 M + Y ^ 2 M> 25 ^ 2, попробуйте еще раз - и продолжайте попытки, пока вы не примете решение. мой вопрос заключается в том, как бы я рассмотрел бит X ^ 2 M + Y ^ 2 M> 25 ^ 2 в операторе if. Вот моя попытка

XM=runif(1,min=-25,max=25)
YM=runif(1,min=-25,max=25)
if(XM^2+Ym^2<=25^2)
{
(XM,YM)
}else
{
(XM,YM)


 }

1 Ответ

1 голос
/ 17 марта 2020

Может быть, вы можете попробовать repeat, как показано ниже

res <- c()
repeat {
  XM <- runif(1,min=-25,max=25)
  YM <- runif(1,min=-25,max=25)
  if (XM**2+YM**2<=25**2) {
    res <- rbind(res,data.frame(XM,YM))
    break
  } else {
    res <- rbind(res,data.frame(XM,YM))
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...