Задать вопрос
9 мая, 09:06

Создайте последовательность 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. Сохранять данную последовательность в список для последующей сортировки в данной задаче запрещено. Используйте сортировку подсчётом.

+4
Ответы (1)
  1. 9 мая, 11:13
    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:

    k + = 1

    sum + = count[k]

    print k
Знаете ответ на вопрос?
Не уверены в ответе?
Правильный ответ на вопрос 👍 «Создайте последовательность A при помощи следующего генератора: def pseudo_list () : for i in range (N) : yield (i*9876+1024) %1000 N = ...» по предмету 📗 Информатика. Развернутая система поиска нашего сайта обязательно приведёт вас к нужной информации. Как вариант - оцените ответы на похожие вопросы. Но если вдруг и это не помогло - задавайте свой вопрос знающим оппонентам, которые быстро дадут на него ответ!
Искать готовые ответы