1
我目前正在处理作业问题并遇到问题。我正在处理的问题是经典生日问题的修改版本。然而,我现在也想试着弄清楚两个人生日相同的概率,更具体地说是别人有和我一样的生日的可能性。在R中查找特定值的索引
以下是作业现有生日问题的工作功能。
birthdays = function(n) {
s = sample(1:365, n, replace = TRUE)
return(s)
}
duplicate.birthdays = function(n) {
b = birthdays(n)
dups = anyDuplicated(b)
dups = any(dups>0)
return(dups)
}
prob.duplicate =function(n) {
r = replicate(5000, duplicate.birthdays(n))
prob = sum(r)/length(r)
return(prob)
}
n = 1:100 # number of people I'm sampling from
probs = sapply(n, prob.duplicate)
我试图修改这些函数,以便明确地定位某人是否和我有同样的生日。我假定在1 - 365天内,我正在寻找任何时候,1号再次出现,因为我假设1,或1月1日是我的生日。
下面是我的duplicate.birthdays功能的修改版本
duplicate.birthdays = function(n) {
b = birthdays(n)
index = 1:length(b)
x = 1
index.get.1 = index [x=1]
return(index.get.1)
}
但是我总是被退回的第一指标,而不是一个索引是否匹配值1
任何帮助将非常感谢,并希望这是足够的信息,基本上了解我想要得到什么。
尝试我取回变量列表此更改后probs读数基本上为 int(0) int(0) int 12 。这是否提供了与1匹配的索引?不完全确定这是什么返回,但谢谢你的帮助! – Zerbraxi
是的,它给出匹配的位置,或者如果没有一个,则给出“整数(0)”。更方便使用的版本可能是:'duplicate.beirthdays < - function(n){< - birthdays(n);如果(1%以%b计){ return(which(b == 1)) }; }' – jeremycg
非常感谢!它使我走上了正确的轨道。 – Zerbraxi