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

Создайте последовательность 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. Сохранять данную последовательность в список для последующей сортировки в данной задаче запрещено. Используйте сортировку подсчётом.
Гость
Ответ(ы) на вопрос:
Гость
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:     k += 1     sum += count[k] print k
Не нашли ответ?
Ответить на вопрос
Похожие вопросы