上一篇:Part1
6.大约fω+2(10)次
#include<bits/stdc++.h>
using namespace std;
void h1(int k){
if(k<=1) return;
for(int i=1;i<=k;i++) h1(k-1);
}
void h2(int k,int p){
if(p==1) h1(k);
if(k==1) h2(p,p-1);
h2(h2(k-1,p),p-1);
}
void h3(int k){
if(k<=0) return;
h2(h2(k-1,k-1),h2(k-1,k-1));
}
void h4(int k){
if(k<=0) return;
h3(h4(k-1));
}
int main(){
h4(10);
}
Tips:如果把这里的10改成65,那么已经超过了G(G(......(64))......)(64层)
7.大约fω×2(10)次
#include<bits/stdc++.h>
using namespace std;
void h1(int k){
if(k<=1) return;
for(int i=1;i<=k;i++) h1(k-1);
}
void h2(int k,int p){
if(p==1) h1(k);
if(k==1) h2(p,p-1);
h2(h2(k-1,p),p-1);
}
void h3(int k,int p){
if(p==1) h2(k,k);
if(k==1) h3(p,p-1);
h3(h3(k-1,p),p-1);
}
int main(){
h3(10,10);
}
8.大约fω×3(10)次
#include<bits/stdc++.h>
using namespace std;
void h1(int k){
if(k<=1) return;
for(int i=1;i<=k;i++) h1(k-1);
}
void h2(int k,int p){
if(p==1) h1(k);
if(k==1) h2(p,p-1);
h2(h2(k-1,p),p-1);
}
void h3(int k,int p){
if(p==1) h2(k,k);
if(k==1) h3(p,p-1);
h3(h3(k-1,p),p-1);
}
void h4(int k,int p){
if(p==1) h3(k,k);
if(k==1) h4(p,p-1);
h4(h4(k-1,p),p-1);
}
int main(){
h4(10,10);
}
9.大约fω2(10)次
#include<bits/stdc++.h>
using namespace std;
void h1(int k){
if(k<=1) return;
for(int i=1;i<=k;i++) h1(k-1);
}
void h2(int k,int p){
if(p==1) h1(k);
if(k==1) h2(p,p-1);
h2(h2(k-1,p),p-1);
}
void h3(int k,int p,int pp){
if(pp==1) h2(k,k);
if(p==1) h2(pp,pp,pp-1);
if(k==1) h3(p,p-1,pp);
h3(h3(k-1,p,pp),p-1,pp);
}
int main(){
h3(10,10,10);
}
Tips:这也是康威链的增长率!
10.大约fω3(10)次
#include<bits/stdc++.h>
using namespace std;
void h1(int k){
if(k<=1) return;
for(int i=1;i<=k;i++) h1(k-1);
}
void h2(int k,int p){
if(p==1) h1(k);
if(k==1) h2(p,p-1);
h2(h2(k-1,p),p-1);
}
void h3(int k,int p,int pp){
if(pp==1) h2(k,k);
if(p==1) h3(k,k,pp-1);
if(k==1) h3(k,p-1,pp);
h3(h3(k-1,p,pp),p-1,pp);
}
void h4(int k,int p,int pp,int ppp){
if(ppp==1) h3(k,k,k);
if(pp==1) h4(k,k,k,ppp-1);
if(p==1) h4(k,k,pp-1,ppp);
if(k==1) h4(k,p-1,pp,ppp);
h4(h4(k-1,p,pp,ppp),p-1,pp,ppp);
}
int main(){
h4(10,10,10,10);
}
Tips:这也是带下标康威链的增长率!
未完待续......