#include #include #include #include const int K = 20; const int N = K+10; void randseed(); void packets(int M[N][K]); void pr(int M[N][K]); int po(int x, int y); int independent(int M[N][K], int i); int recv(int M[N][K]); int shift(int M[N][K], int i); double rate(int T, int suc[N+1]); void newp(int p[K], int q); void packets_degree(int M[N][K], int d); main() { randseed(); /* int M[N][K]; packets_degree(M,3); pr(M); printf("recv=%d\n",recv(M)); */ int suc[N+1]; int T=10000; 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;t>j&1) a^=M[j][k]; if(a) { ok=1; break; } } if(!ok) return 0; } return 1; } int po(int x, int y) { int r=1; for(int i=0;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