def calculate_histogram(data, num_bins):
    """
    Расчет гистограммы для выборки данных
    data - выборка случайной величины
    num_bins - число интервалов разбиения
    возвращает список с количеством элементов в каждом интервале
    """
    if not data:
        return [0] * num_bins
    
    min_val = min(data)
    max_val = max(data)
    bin_width = (max_val - min_val) / num_bins
    
    histogram = [0] * num_bins
    
    for value in data:
        if value == max_val:
            bin_index = num_bins - 1
        else:
            bin_index = int((value - min_val) / bin_width)
        if 0 <= bin_index < num_bins:
            histogram[bin_index] += 1
    
    print("\nГистограмма:")
    print("Интервал\t\tКоличество")
    for i in range(num_bins):
        lower_bound = min_val + i * bin_width
        upper_bound = min_val + (i + 1) * bin_width
        print(f"{lower_bound:.2f} - {upper_bound:.2f}\t\t{histogram[i]}")
    
    return histogram

num_bins = int(input("Введите количество интервалов разбиения: "))

data = [1.2, 2.5, 3.1, 4.8, 5.2, 6.7, 7.3, 8.9, 9.1, 10.5, 
        2.1, 3.8, 4.2, 5.9, 6.3, 7.8, 8.2, 9.7]

result = calculate_histogram(data, num_bins)