Я работаю над сценарием, который должен оценить вероятность того, что по крайней мере 2 человека из n будут иметь одинаковый день рождения в течение k дней от каждого другого. Чтобы оценить это, у меня есть следующая функция:
birthdayRangeCheck.prob = function(nPeople, seperation, nSimulations) {
count = 0
for (i in 1:nSimulations) {
count = count + birthdayRangeCheck(nPeople, seperation)
}
return(count / nSimulations)
}
Теперь, просто введя простые значения для nPeople, seperation, nSimulations, я получу нормальное число. Например,
birthdayRangeCheck.prob(10,4,100)
-> 0.75
Однако, когда я хочу изобразить вероятность как функцию nPeople и разделения, я сталкиваюсь со следующей проблемой:
x = 1:999
y = 0:998
z = outer(X = x, Y = y, FUN = birthdayRangeCheck.prob, nSimulations = 100)
numerical expression has 576 elements: only the first used... (a lot of times)
Так что кажется, что внешнее не входит отдельные элементы x и y, а скорее сами векторы, что противоположно тому, что внешнее должно делать правильно?
Я что-то пропускаю? Потому что я не могу понять, что является причиной этой ошибки. (замена FUN, например, sin (x + y) работает как талисман, поэтому я связал его с самой функцией. Но так как функция прекрасно работает с числовыми аргументами c, я не понимаю, почему R не понимает просто ввести элементы x и y в качестве аргументов.)
Любая помощь будет принята с благодарностью. Спасибо;)