Задача 07B. Stochastic universal sampling

Входной файл:Стандартный вход   Ограничение времени:1 сек
Выходной файл:Стандартный выход   Ограничение памяти:512 Мб
Максимальный балл:1  

Условие

Требуется на языке Python реализовать алгоритм Stochastic universal sampling.

Функция должна иметь следующий интерфейс


import numpy as np

def sus(fitness: np.ndarray, n: int, start: float) -> list:
    """Selects exactly `n` indices of `fitness` using Stochastic universal sampling alpgorithm. 

    Args:
        fitness: one-dimensional array, fitness values of the population, sorted in descending order
        n: number of individuals to keep
        start: minimal cumulative fitness value

    Return:
        Indices of the new population"""

    raise NotImplementedError()

Параметрами функции являются:

Функция возвращает список индексов выбранных особей

Формат выходных данных

Код решения должен содержать импортируемые модули, определение и реализацию функции.

Примеры тестов

Стандартный вход Стандартный выход
1 fitness = np.array([10, 4, 3, 2, 1]) print(*fitness[sus(fitness, 3, 6)])
10 4 1
            

0.054s 0.017s 13