40 lines
889 B
Python
40 lines
889 B
Python
def normalize_list(data):
|
|
|
|
if not data:
|
|
return []
|
|
|
|
min_val = min(data)
|
|
max_val = max(data)
|
|
|
|
# Проверка: если все числа одинаковые, диапазон равен 0
|
|
if max_val == min_val:
|
|
return [0.0 for _ in data]
|
|
|
|
# Применение формулы
|
|
normalized = [(x - min_val) / (max_val - min_val) for x in data]
|
|
return normalized
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# --- Примеры использования ---
|
|
list1 = [10, 20, 30, 40, 50]
|
|
print(f"Оригинал: {list1} -> {normalize_list(list1)}")
|
|
# Результат: [0.0, 0.25, 0.5, 0.75, 1.0]
|
|
|
|
list2 = [5, 5, 5, 5]
|
|
print(f"Оригинал: {list2} -> {normalize_list(list2)}")
|
|
# Результат: [0.0, 0.0, 0.0, 0.0]
|
|
|
|
list3 = [-10, 0, 10]
|
|
print(f"Оригинал: {list3} -> {normalize_list(list3)}")
|
|
# Результат: [0.0, 0.5, 1.0]
|
|
|
|
|
|
normalize_list(list1) |