#include #include #include #include const int K = 20; const int N = K+12; void randseed(); void packets(int M[N][K]); void pr(int M[N][K]); int swap(int M[N][K], int i, int j); int doxor(int M[N][K], int i, int j); int lu(int M[N][K], int p, int NN); int dolu(int M[N][K], int NN); int recv(int M[N][K]); double rate(int T, int suc[N+1]); void packets_degree(int M[N][K], int d); void newp(int p[K], int q); main() { randseed(); int suc[N+1]; int T=500; double S; S=rate(T,suc); printf("S=%f\r\n",S); for(int i=K;i<=N;i++) printf("%2d, %f\r\n",i-K,(double)suc[i]/T); } double rate(int T, int suc[N+1]) { int M[N][K]; for(int i=0;i<=N;i++) suc[i]=0; for(int t=0;tN) return N-K+1; } } return r; } int dolu(int M[N][K], int NN) { for(int i=0;i=NN) return 0; if(i!=p) swap(M,p,i); for(i=p+1;i=0;i--) { j++; for(;p[j];j++) ; } p[j]=1; } } void packets_degree(int M[N][K], int d) { for(int i=0;i