Это вопрос:
Напишите функцию find_Min_Difference(L, P), которая принимает список L целых чисел и P (положительное целое число), где размер L больше P. Задача состоит в том, чтобы выбрать P различных элементов из
списка L, где разница между максимальным и минимальным значением в выбранных элементах минимальна по сравнению с другими различиями в возможном подмножестве из p элементов. Функция возвращает это минимальное значение разницы.
Примечание. Список может содержать более одного подмножества p элементов с одинаковым минимальным значением разницы.
Пример
Пусть L = [3, 4, 1, 9, 56, 7, 9, 12, 13] и P = 5
Если мы см. следующие два подмножества по 5 элементов из L
[3,4, 7, 9, 91] или [7, 9, 9, 12, 13]
Здесь разница между максимальным и минимальным значением в обоих подмножествах составляет 9 - 3 = 6 или 13 - 7 = 6, что является минимальным. Таким образом, результат будет 6.
Пример ввода
[3, 4, 1, 9, 56, 7, 9, 12]
5
Вывод
6
Решение предоставлено университетом:
Код: Выделить всё
def find_Min_Difference(L, P):
L.sort()
N = P
M = len(L)
min_diff = max(L) - min(L)
for i in range(M - N + 1):
if L[i + N - 1] - L[i] < min_diff:
min_diff = L[i + N - 1] - L[i]
return min_diff
L = eval(input().strip())
P = int(input())
print(find_Min_Difference(L, P))
Мобильная версия