#1
import random
def pause(signal, Tzad):
    for i in range(len(signal)):
        signal[i] += Tzad
    return signal
x = [random.gauss(4,2) for i in range(50)]
print(x)
T = float(input("Введите задержку"))
y = pause(x,T)
print(y)

#2
import numpy as np
import random
import matplotlib.pyplot as plt

def histo(data, num):
    minval, maxval = min(data), max(data)
    parts = np.linspace(minval, maxval, num + 1)
    rows = [0] * num
    for now in data:
        for i in range(num):
            if parts[i] <= now < parts[i + 1]:
                rows[i] += 1
                break
        if now == maxval:
            rows[-1] += 1
    print("ТАБЛИЦА ГИСТОГРАММЫ")
    print(" "*60)
    print(f"{'№':<10} {'Интервал':<30} {'Количество':<15}")
    print("-"*60)
    
    total = len(data)
    for i in range(num):
        # Форматирование интервала
        interval = f"[{parts[i]:.6f}, {parts[i+1]:.6f})"
        if i == num - 1:  # Последний интервал включает правую границу
            interval = f"[{parts[i]:.6f}, {parts[i+1]:.6f}]"  
        print(f"{i+1:<10} {interval:<30} {rows[i]:<15} ")
    print("-"*60)
    print(rows)
           
    plt.hist(data, bins=parts)
    plt.xlabel('Значения выборки')
    plt.ylabel('Число элементов')
    plt.title('Гистограмма выборки')
    plt.show()

    return rows

sample = [random.betavariate(random.random(), random.random()) for i in range(random.randint(10,1000))]
intervals = int(input("Введите количество интервалов разбиения: "))
output = histo(sample, intervals)



#3
regression = lambda b1,b2,X: b1+b2*X
b1 = float(input("Введите значение b1"))
b2 = float(input("Введите значение b2"))
X = float(input("Введите значение X"))
Forecast = regression(b1,b2,X)
print("Полученное предсказанное значение:",Forecast)
