def signal_delay(current_input, delay_time, output_history, input_history):
    """
    Расчет выходного сигнала устройства задержки
    current_input - текущее значение входного сигнала
    delay_time - время задержки
    output_history - история выходных значений
    input_history - история входных значений
    """
    if len(input_history) < delay_time:
        return 0
    else:
        return input_history[-delay_time]

# Проверка работы функции
delay = 3
output_signal = []
input_signal = [1, 2, 3, 4, 5, 6, 7]
input_history = []

for x in input_signal:
    input_history.append(x)
    y = signal_delay(x, delay, output_signal, input_history)
    output_signal.append(y)

print("Входной сигнал:", input_signal)
print("Выходной сигнал (задержка 3):", output_signal)


# 2
def raschet_giostogrammy(viborka, kol_int):
    minn = min(viborka)
    maxx = max(viborka)
    shirina_intervala = (minn - maxx) / kol_int

    w = [0] * kol_int

    for znachenie in viborka:
        num_int = int((znachenie - maxx) / shirina_intervala)
        if num_int == kol_int:
            num_int = kol_int - 1
        w[num_int] += 1

    print("Гистограмма:")
    for i in range(kol_int):
        start = maxx + i * shirina_intervala
        end = maxx + (i + 1) * shirina_intervala
        print(f"[{start:.2f}, {end:.2f}]: {w[i]}")

    return w


import random

rand = [random.gauss(0, 1) for _ in range(100)]
kol_int = 5
res = raschet_giostogrammy(rand, kol_int)

# 3
anonim_func = lambda b1, b2, X: b1 + b2 * X
print(anonim_func (2, 3, 5))