Позволяет иметь N-ведер, которые могут содержать М-предметы. В массиве хранится текущее количество элементов в каждом сегменте: status = np.zeros (N): максимальное значение M
Мне нужна функция для возврата следующего кандидата в группы для двух различных типов последовательности добавления элементов. .
Мне также было интересно, смогу ли я сделать это без зацикливания массива состояния, но с использованием numpy ops.
1. algo=hop ... here is the order :
add item to the buckets one after another, when it reaches N start from the first bucket again..
1,2,3,1,2,3,1,2,3...
2. algo=fill ... here is the order :
fill the 1st bucket, then fill 2nd bucket , ..... fill n-th bucket
1,1,1,.. m-times, 2,2,2,... m-times, .... m,m,m,m, ...m-times
, поэтому на основе алгоритма, если я пройду " статус ", я должен получить следующую корзину, к которой нужно добавить .., а также обновить статус.
next_bucket(status, algo) -return-> bucket-x, is_empty?
--------> None if full
мой размышляющий" прыжок ", поиск наименьшего числа в статусе> ZERO, кроме когда до последнего сегмента до M.
"fill", ищите последний интервал с Max, за исключением случаев, когда все значения
if M=5, fill :
: s4
: array([5, 5, 5, 0, 0], dtype=int8)
: np.where(s4 < 5)[0][0]
: 3
: s3
: array([5, 3, 0, 0, 0], dtype=int8)
: np.where(s3 < 5)[0][0]
: 1