Добавил:
t.me Установите расширение 'SyncShare' для решения тестов в LMS (Moodle): https://syncshare.naloaty.me/ . На всякий лучше отключить блокировщик рекламы с ним. || Как пользоваться ChatGPT в России: https://habr.com/ru/articles/704600/ || Также можно с VPNом заходить в bing.com через Edge браузер и общаться с Microsoft Bing Chat, но в последнее время они форсят Copilot и он мне меньше нравится. || Студент-заочник ГУАП, группа Z9411. Ещё учусь на 5-ом курсе 'Прикладной информатики' (09.03.03). || Если мой материал вам помог - можете написать мне 'Спасибо', мне будет очень приятно :) Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Zadaniye2

.1.py
Скачиваний:
0
Добавлен:
24.10.2023
Размер:
2.3 Кб
Скачать
from math import log
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

if __name__ == "__main__":
    NumSlots = 10 ** 5
    start = 0.05
    step = 0.01
    end = 0.5
    
    lamCount = int((end - start) / step + 1)
    
    Lam = np.linspace(start, end, lamCount)
    averageUsers = np.zeros([1, lamCount])[0]
    T_mean = np.zeros([1, lamCount])[0]
    
    for ind, lam in enumerate(Lam):
    
        startSlot = np.zeros([1, NumSlots])[0]
        endSlot = np.zeros([1, NumSlots])[0]
        P = np.random.poisson(lam, [1, NumSlots])[0]
    
        for i in range(NumSlots):
            I = 0
    
            if startSlot[i] != 0:
                R = np.random.binomial(startSlot[i], 1 / startSlot[i], 1)
    
                if R == 1:
                    I = 1
                else:
                    I = 0
    
            endSlot[i] = startSlot[i] - I + P[i]
    
            if i < NumSlots - 1:
                startSlot[i + 1] = endSlot[i]
    
        averageUsers[ind] = np.mean(endSlot)
        T_mean[ind] = averageUsers[ind] / lam
    
    print("Задание 2:", Lam)
    print('aU', averageUsers)
    print(T_mean)
    
    plt.figure()
    plt.plot(Lam, averageUsers, label='averageUsers')
    plt.plot(Lam, T_mean, label='T_mean', color='red')
    plt.title('График зависимости среднего количества абонентов в системе N \nи\n среднего времени нахождения абонента в системе T от Lam')
    plt.grid(color='gray')
    plt.xlabel('Lam')
    plt.ylabel('Values')
    plt.ylim(-1, 21)
    plt.xlim(0.05, 0.4)
    plt.legend()

    # plt.figure()
    # plt.plot(Lam, averageUsers)
    # plt.title('График зависимости среднего количества\n абонентов в системе N от Lam')
    # plt.grid(color='gray')
    # plt.xlabel('Lam')
    # plt.ylabel('averageUsers')
    # plt.ylim(0, 20)
    # plt.figure()
    # plt.plot(Lam, T_mean)
    # plt.title('График зависимости среднего времени\n нахождения абонента в системе T от Lam')
    # plt.grid(color='gray')
    # plt.xlabel('Lam')
    # plt.ylabel('T_mean')
    # plt.ylim(0, 20)
    
    plt.show()
Соседние файлы в предмете Вычислительные системы, сети и телекоммуникации