Дан список из 2000 элементов, созданный при помощи my_list = [(lambda...

0 голосов
43 просмотров

Дан список из 2000 элементов, созданный при помощи
my_list = [(lambda x:(x*296+2410)%4096)(i) for i in range(2000)]
доставая из него значения при помощи операции
x = my_list.pop()
и проверяя длину оставшегося списка через
len(my_list),
найти количество элементов, равных второму по минимальности значению (отличных по значению от первого минимума).


Информатика (71 баллов) | 43 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

#генерируем список из 2000 элементов
my_list = [(lambda x:(x*296+2410)%4096)(i) for i in range(2000)]

# начальное значение для временного минимума
min1_value = min2_value = 10000
min1_number = min2_number = 0

while my_list:
    x = my_list.pop()
    if x < min1_value:
        min2_value = min1_value
        min2_number = min1_number
        min1_value = x
        min1_number = 1
    elif x == min1_value:
        min1_number += 1
    elif x < min2_value:
        min2_value = x
        min2_number = 1
    elif x == min2_value:
        min2_number += 1
        
print(min2_number)

(308 баллов)
0

Спасибо