求一道R语言的题目解答~关于function()的~
发布网友
发布时间:2022-04-29 13:57
我来回答
共1个回答
热心网友
时间:2023-10-09 12:00
fun<-function(n){
none=0;
over=0;
sum=0;
for(i in 1:1000){
A=1:n #代表1到n号人
B=1:n #代表1到n号帽
num=0; #有num个人得到自己的帽子
max=n;
for(j in 1:n-1){
rand=round(runif(2,min=1,max=max)) #产生2个随机数,取整
people=rand[1]
hat=rand[2]
if(A[people]==B[hat]){
num=num+1
}
A<-A[-people] #删除走的人
B<-B[-hat] #删除掉已拿走的帽子
max=max-1 #随机数最大值减一
}
if(num==0)none=none+1;
if(num>0)over=over+1;
sum=sum+num/n;
}
c(
over/1000, #至少有1个人拿到了自己帽子的概率
none/1000, #没有一个人拿到自己帽子的概率
sum/1000 #得到自己帽子的概率