设多次执行 rand() 函数生成的正整数列随机且可重
对于如下程序,不考虑是否炸 int 等问题
bool check(){
for(int i=1;i<=n-1;i++){
if(a[i]>a[i+1])return false;
}
return true;
}
int main(){
for(int i=1;i<=n;i++)a[i]=rand();
while(!check()){
int l=rand()%n+1,r=l;
while(l==r)r=rand()%n+1;
swap(a[l],a[r]);
}
return 0;
}
若 n∈N+,check() 函数的平均执行次数是多少?