猴子打字机模拟器
0. 前言
相信大家对无限猴子定理都不陌生,所以为了验证其复杂度,我发明了此模拟器。
1. 原理
每一刻随机生成一个小写字母,判断什么时候与给定字符串相等。
Q. 为什么只有小写字母?
A. 为了减轻猴子的工作量。
2. 代码
#include <bits/stdc++.h>
using namespace std;
char c[11451419],ok[114]="hello";//改成你要的字符串,推荐<=5个字符
int len,flag;
int main(){
freopen("rand.out","w",stdout);
srand(time(0));
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int lt=strlen(ok);
while(1){
char ls=rand()%26+'a';
c[++len]=ls;
if(len>=lt){
flag=0;
for(int i=len-lt+1;i<=len;i++){
if(c[i]!=ok[i-len+lt-1]){
flag=1;
break;
}
}
if(flag==0){
for(int i=1;i<=len;i++){
cout<<c[i];
}
cout<<'\n'<<len;
return 0;
}
}
}
return 0;
}