Advertisement
oshige_san

Untitled

May 11th, 2022
984
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.53 KB | None | 0 0
  1. #include <iostream>
  2. #include "math.h"
  3. #include "stdio.h"
  4. #include "stdlib.h"
  5. #include "conio.h"
  6. #include <Windows.h>
  7.  
  8. using namespace std;
  9. int main()
  10. {
  11.     {
  12.         SetConsoleCP(1251);
  13.         SetConsoleOutputCP(1251);
  14.         double lyambda = 0, mu = 0, time, Tobsl = 0, t = 0, Ivh, Iobsl, Po, A, KolKan, Potk, Q;
  15.         int Cz = 0, Co = 0, Cobsl = 0, S = 0, kol;
  16.         cout << "Введите интенсивность потока: ";
  17.         cin >> Ivh;
  18.         cout << "Введите интенсивность потока обслуживания: ";
  19.         cin >> Iobsl;
  20.         cout << "Введите количество прогонов: ";
  21.         cin >> kol;
  22.         cout << "\n";
  23.  
  24.         for (int i = 1; i <= kol; i++)
  25.         {
  26.             cout << "Прогон " << i << ":\n";
  27.             cout << "Введите время работы системы: ";
  28.             cin >> time;
  29.             do
  30.             {
  31.                 if (S == 0)
  32.                 {
  33.                     lyambda = (-1)*log((rand() % 1000 + 1) / 1000.0 + 0.001) / Ivh;
  34.                     S = 1;
  35.                     t += lyambda;
  36.                     Cz++;
  37.                     Cobsl++;
  38.                 }
  39.                 if (S == 1)
  40.                 {
  41.                     lyambda = (-1)*log((rand() % 1000 + 1) / 1000.0 + 0.001) / Ivh;
  42.                     mu = (-1)*log((rand() % 1000 + 1) / 1000.0 + 0.001) / Iobsl;
  43.                     if (lyambda < mu)
  44.                     {
  45.                         S = 2;
  46.                         t += lyambda;
  47.                         Cz++;
  48.                         Cobsl++;
  49.                         Tobsl += lyambda;
  50.                     }
  51.                     else
  52.                     {
  53.                         S = 0;
  54.                         t += mu;
  55.                         Tobsl += mu;
  56.                     }
  57.                 }
  58.                 if (S == 2)
  59.                 {
  60.                     lyambda = (-1)*log((rand() % 1000 + 1) / 1000.0 + 0.001) / Ivh;
  61.                     mu = (-1)*log((rand() % 1000 + 1) / 1000.0 + 0.001) / Iobsl;
  62.                     if (lyambda < mu)
  63.                     {
  64.                         S = 2;
  65.                         t += lyambda;
  66.                         Cz++;
  67.                         Co++;
  68.                         Tobsl += lyambda;
  69.                     }
  70.                     else
  71.                     {
  72.                         S = 1;
  73.                         t += mu;
  74.                         Tobsl += mu;
  75.                     }
  76.                 }
  77.             } while (t < time);
  78.             Po = (time - Tobsl) / 2 / time;
  79.             Potk = (double)Co / (double)Cz;
  80.             Q = (double)Cobsl / (double)Cz;
  81.             A = (double)Cobsl / time;
  82.             KolKan = (time - Tobsl) / time;
  83.             cout << "Количество заявок: " << Cz << "\n";
  84.             cout << "Количество обслуженных заявок: " << Cobsl << "\n";
  85.             cout << "Отказано " << Co << " заявке(ам)\n";
  86.             cout << "Вероятность простоя: " << Po << "\n";
  87.             cout << "Вероятность отказа: " << Potk << "\n";
  88.             cout << "Доля обслуженных заявок: " << Q << "\n";
  89.             cout << "Абсолютная пропускная способность: " << A << "\n";
  90.             cout << "Среднее число занятых каналов: " << KolKan << "\n\n";
  91.         }
  92.         //getch();
  93.     }
  94. }
  95.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement