Онлайн алгоритм для расчета стандартного отклонения

Обычно у меня есть более техническая проблема, но я упросту ее для вас на примере подсчета шаров.

Предположим, у меня есть шарики разных цветов и один индекс массива (инициализированный для всех 0), зарезервированный для каждого цвета. Каждый раз, когда я выбираю мяч, я увеличиваю соответствующий индекс на 1.

Шары выбираются случайным образом, и я могу выбрать только один мяч за раз. Моя единственная цель - подсчитать количество шариков для каждого цвета, пока у меня не закончатся шарики.

Я хотел бы рассчитать стандартное отклонение количества шаров разных цветов,while I am counting them, Я не хочу вычислять это, повторяя массив еще раз после того, как я закончу с подсчетом всех шаров.

Для визуализации:

Шарики в случайном порядке:BBGRRYYBBGGGGGGB (каждая буква представляет первую букву цвета) Индексы массива от 0 до 3 соответствуют цветам B, G, R и Y соответственно. Когда я закончу собирать шары, мой массив выглядит так[5,7,2,2].

После получения окончательного массива вычислить стандартное отклонение очень просто, но я хочу сделать это, пока заполняю этот массив.

Я хочу сделать это на Java, и у меня есть около 1000 цветов.

Каков наиболее эффективный способ реализовать это? Или есть ли способ сделать это до того, как у вас в руках будет последний массив?

Ответы на вопрос(2)

Ваш ответ на вопрос