Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- using namespace std;
- #define A 0
- #define B 1
- #define F 1
- #define O 0
- double lamA,
- double lamB,
- double miuA,
- double miuB;
- double nmf[2][15];
- double genExp(double lambda)
- {
- double u, x;
- u = (double)rand() / (RAND_MAX + 1);
- x = -1 / lambda*log(1 - u);
- return x;
- }
- double genTr(int mr)
- {
- double Tr;
- if (mr == A)
- {
- Tr = genExp(miuA);
- }
- else
- {
- Tr = genExp(miuB);
- }
- return Tr;
- }
- int main()
- {
- double DS, S, St[16], Tf[16], nf, Tpd, Tr;
- double STf = 0;
- double STr = 0;
- double ceas=0;
- int sd,Nd, nmd,sr,mr;
- for (int i = 1; i <= S; ++i)
- {
- nmf[A][i] = 1;
- nmf[B][i] = 2;
- }
- for (int i = 1; i <= S; ++i)
- {
- St[i] = F;
- }
- nf = S;
- nmd = 0;
- sd = -1;
- for (int i = 1; i <= S; ++i)
- {
- if ((St[i] == F) && sd == -1 || Tf[sd] > Tf[i])
- {
- sd = i;
- }
- }
- do{
- if (sd != -1)
- {
- ceas += Tr;
- if (nmd > 0)
- Tr -= Tpd;
- for (int i = 1; i <= S; i++)
- {
- if (St[i] == F)
- {
- Tf[i] -= Tpd;
- }
- }
- STf += nf + Tpd;
- Nd++;
- nmf[nmd][sd]--;
- nmd++;
- if (nmf[nmd][sd]==0)
- {
- St[sd] = 0;
- nf--;
- }
- else if (nmf[nmd][sd] < 0)
- {
- Tf[Nd] = genExp(lamA + lamB);
- }
- if (nmd == 1){
- sr = sd;
- mr = nmd;
- Tr = genTr(mr);
- STr += Tr;
- }
- }
- } while (ceas<DS);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement