我想在R中创建一个随机模拟,其中人a可以在0:500之间选择一个整数,然后我使用sample((随机选择0到500之间的一个整数。该模型的结果是确定人A选择的数字与生成的随机数之间的平方差,反之亦然。
例如,如果人员A选择5,随机数生成器选择25,则人员A必须向我支付$(25-5(^2=$400。如果人A选择25,随机数生成器说10,那么人A会付给我$(25-10(^2=$225。除非A完全猜对了我的号码,否则他总是要付钱的。
possible.numbers <- 0:500
chosen.numbers <- 0:500
generated.number <-
sample(possible.numbers, 1, replace = TRUE)
expected.payment <- (generated.number - 30)^2 #assuming I chose $30
print(expected.payment)
我认为我的代码不正确,任何帮助都将不胜感激,提前感谢!
我不确定你是说你想指定一个选定的数字还是随机采样一个"选择";数字无论如何,下面的函数应该允许你同时做这两件事——如果你想让函数";选择";为您选择的号码,或者有人可以指定号码为";选择">
set.seed(123)
example_function <- function(chosen = NULL, possible_numbers = 0:500){
if(is.null(chosen)){
chose <- sample(possible_numbers, 1)
} else {
chose <- chosen
}
random <- sample(possible_numbers, 1)
payment <- (random - chose) ^ 2
return(c(chosen = chose, random = random, payment = payment))
}
输出:
example_function()
# > example_function()
# chosen random payment
# 414 462 2304
example_function(chosen = 2)
# > example_function(chosen = 2)
# chosen random payment
# 2 178 30976