Я создаю приложение для отслеживания цен на криптовалюту, в котором есть диаграмма, иллюстрирующая стоимость портфеля за последние 7 дней.Поэтому мне нужен способ генерирования точек данных на графике.
Для каждой криптовалюты в портфеле у меня есть массив значений NSDecimalNumber
, которые представляют цену криптовалюты в каждый час вна прошлой неделе.Чтобы создать точки данных, мне нужен способ для расчета общего средневзвешенного значения почасовых цен.Под взвешенным я подразумеваю, что общий средний массив должен представлять сумму каждой криптовалюты, которая в настоящее время хранится.
Например, если у меня есть следующие массивы:
Cryptocurrency 1 (25% of the overall portfolio value) - [1.2, 8.3, 7.2]
Cryptocurrency 2 (25% of the overall portfolio value) - [3.4, 9.2, 6.3]
Cryptocurrency 3 (50% of the overall portfolio value) - [6.3, 1.1, 5.9]
Результат должен быть:
[4.3, 4.92, 6.33]
В результате расчетов:
((1.2 * 0.75) + (3.4 * 0.75) + (6.3 * 1.5)) / 3 = 4.3
((8.3 * 0.75) + (9.2 * 0.75) + (1.1 * 1.5)) / 3 = 4.92
((7.2 * 0.75) + (6.3 * 0.75) + (5.9 * 1.5)) / 3 = 6.33
Я уверен, что должен быть чистый способ сделать это с map
и reduce
, однако у меня нетеще не подумал о каких-либо потенциальных решениях.Был бы признателен даже ответ на основе цикла, поскольку я могу упростить его позже.