#include #include #include #include #include using namespace std; class Linear; class LT; #include "lt.h" #include "linear.h" #include "graph.h" void randseed(); class Recv { LT *lt; Linear *li; int K; int maxN; int *p; int lin; int ltn; int *liprob; int *ltprob; Rcvgraph *gr; public: double liperf; double ltperf; public: Recv(int K_, int maxN_); ~Recv(); void newp(int q); void sample(); void rate(int T, int s1, int s2, int s3); }; /* main() { randseed(); Recv rx(18,54); rx.rate(15000,3,6,13); } */ main() { randseed(); int Nn=18; Recv rx(18,54); for(int s1=2;s1<=3 && s1kring_sides(s1,s2,s3); for(int i=0;i<=maxN;i++) { liprob[i]=0; ltprob[i]=0; } for(int t=0;tinit(); li->init(); int ltr=0; int lir=0; lin=maxN+1; ltn=maxN+1; gr->init(); for(int i=0; irx(p); if(!(ltr==K)) { ltr=lt->recv(p); if(ltr==K) ltn=i+1; } if(!(lir==K)) { lir=li->recv(p); if(lir==K) lin=i+1; } } } void Recv::newp(int q) { if(q==0) { for(int i=0;i=0;i--) { j++; for(;p[j];j++) ; } p[j]=1; } } Recv::Recv(int K_, int maxN_) { K=K_; maxN=maxN_; lt=new LT(K,maxN); li=new Linear(K,maxN); lt->init(); li->init(); p=new int[K]; liprob=new int[maxN+1]; ltprob=new int[maxN+1]; } Recv::~Recv() { delete lt; delete li; delete[] p; delete[] liprob; delete[] ltprob; } void randseed() { int ti=time(0); printf("srand=%d\r\n",ti); srand(ti); }