Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace ConsoleApp9
- {
- class Program
- {
- //Многоканальная СМО с неограниченноой очередью
- delegate void SMO();
- public static void Mo()
- {
- int n,u,t_obs;
- double p_sum=0,k_3, L_och, L_sys, T_sys, T_och;
- Console.WriteLine("Введите колличество: ");
- n = int.Parse(Console.ReadLine());
- Console.WriteLine("Введите интесивность поступления: ");
- double lambda = int.Parse(Console.ReadLine());
- //Console.WriteLine("Введите интесивность обслуживания заявок: ");
- //u = int.Parse(Console.ReadLine());
- Console.WriteLine("Введите среденне время обслуживания: ");
- t_obs= int.Parse(Console.ReadLine());
- double[] p_0 = new double[n];
- u = 1 / t_obs;
- double p = lambda / u;
- Func<long, long> Factorial = null;
- Factorial = x => x == 0 ? 1 : x * Factorial(x - 1);
- for (int i =0; i < n; i++)
- {
- p_0[i] = 1 /(1+(Math.Pow(p, i - 1) / Factorial(i)));
- p_sum += p_0[i];
- Console.WriteLine("Вероятность[" + i + "]:" + p_0[i]);
- }//вероятности
- Console.WriteLine("Конечная вероятность = " + p_sum);
- k_3 = lambda / u;//среднее число занятых каналов
- Console.WriteLine("Cреднее число занятых каналов = " + k_3);
- L_och = (Math.Pow(p, n + 1) * p_sum) / n * Factorial(n)*Math.Pow((1-p/n),2);
- Console.WriteLine("Длина очереди = " + L_och);
- L_sys = L_och + p;
- Console.WriteLine("Число обслуживаемых заявок = " + L_sys);
- T_sys = L_sys / lambda;
- Console.WriteLine("Среднее время обслуживания заявки = " + T_sys);
- T_och = L_och / lambda;
- Console.WriteLine("Среднее время ожидания обслуживания = " + T_och);
- }
- static void Main(string[] args)
- {
- SMO mo = Mo;
- mo();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement