如何解决要替换的项目数不是替换长度错误的倍数吗?
以下是设置::假设标准的52张洗牌纸牌。仅使用蒙特卡洛方法来计算牌组中前两张牌为A的近似概率。在实施开始时,将种子设置为514。您应该模拟至少10万次实验才能获得足够的答案。
这是我的代码返回错误:
vw
解决方法
您正在for
循环的每次迭代中采样两张卡。因此,您将在末尾拥有2 *nTrials
张卡片,是分配的results
大小的两倍。而是将卡片存储在列表中。
让我们假设卡号1,14,27和40是A。您可以使用%in%
检查所采样的卡是否为ace,如果是,则递增计数器。
cards <- c(1:52)
aces <- c(1,27,40)
nTrials<-100000
results <- vector('list',nTrials)
counter <- 0
for(i in 1:nTrials){
sampled <- sample(x=cards,size=2,replace=TRUE)
results[[i]] <- sampled
if(all(sampled %in% aces)) counter <- counter + 1
}
#Number of times two aces were enountered
counter
#Probability
counter/nTrials
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。