Создайте последовательность A при помощи следующего генератора: def pseudo_list(): for i...

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

Создайте последовательность A при помощи следующего генератора:
def pseudo_list():
for i in range(N):
yield (i*9876+1024)%1000
N = 10**6 + 1
A = pseudo_list())

# Элементы данной последовательности следует перебирать так:
for x in A:
pass # работа с очередным числом x
Найдите «медиану» данного псевдосписка чисел при помощи сортировки подсчётом.
Медиана — это число, которое находится ровно посередине списка, если список отсортировать.
В последовательности чисел A — 1066 + 1 число, все числа — целые неотрицательные от 0 до 999. Сохранять данную последовательность в список для последующей сортировки в данной задаче запрещено. Используйте сортировку подсчётом.


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

Def pseudo_list():
    for i in range(N):
        yield (i*9876+1024)%1000
N = 10**6 + 1
A = pseudo_list()

count = [0] * 1000;
for x in A:
    count[x] += 1
sum, k = 0, -1
while sum <= N // 2:<br>    k += 1
    sum += count[k]
print k

(148k баллов)
0

не срабатывает, дает ошибку

0

в каком питоне не работает?

0

jykfqy

0

онлайн

0

мне нужно только число, этого будет достаточно

0

496