Не знаю как вам точнее ответить, поэтому постараюсь уточнить ситуацию:
Это 5 клиентов, которые фактически получили такой объем данных за такое время. Вопрос: какая, в среднем, скорость была в данной ситуации?
Задача недоопределена, так что ответ может быть каким угодно.
На вашей маньере, возьмем такие числа:
1 поток: Передано 7MB за 3 секунд
2 поток: Передано 8МB за 100000 секунд.
Допустим для определенности, что эти передачи шли по потоков с постоянной скорости за эти времена, т.е. по первом потоке передача шла равномерно 3 секунды со скорости 7/3 MB/с, по втором потоке передача шла равномерно 100000 секунд со скорости 8/100000 MB/с.
Пусть также допустим для определенности, что данные начали передаваться одновременно в момент t=0 - тоесть те 3 секунды которые данные передавались по первому потоку, и есть первые 3 секунды из 100 000 секунд которые данные передавались по второму (а то даже как перекрываются соответные времевые интервалы, у вас также не уточнено).
Теперь, если доопределять задачу по-разному, можно получить разные (очевидно верные!) ответы.
1. Допустим, что получатель принимал данные только первых три секунд при 0<t<3, и именно за этот период ищется средняя скорость.
Очевидно, за эти 3 секунды получатель получил 7+8/100000*3= 7.00024 MB, итого средняя скорость общего трансфера за эти три секунды была 7.00024 /3 = 2.33341(3) МB/с, или "средняя скорость в среднем на поток" (если ищется именно это что также неясно) есть (2.33341(3)/2) = 1.16670(6) МB/(с*поток).
2. Допустим, что получатель принимал эти данные всех 100 000 секунд при 0<t<100000, и именно за этот период ищется средняя скорость.Для потока 2 все известно за этих 100 000 секунд. Однако, для потока 1 непонятно после первых три секунд что было? Может он продолжал передавать со скорости 7/3 МB/сек всех этих 99 997 секунд? Или, он передал 7MB, а остальных 99 997 секунд ничего не передавал? Или что-то другое??
В зависимости от того что предполагается для потока 1 распишем например два варианта (а при других предположений для потока 1, можно получить любые числа):
2.1. Поток 1 продолжал передавать со скорости 7/3 MB/сек остальных 99 997 секунд.Тогда за все время 100000 секунд, получатель принял суммарно (7/3 MB/с*100000с + 8МB) = 233341.3(3) МB данных, средняя скорость общего трансфера по всех потоков была 2.33341(3) MB/сек, а "средняя скорость в среднем на поток" 2.33341(3)/2 = 1.16670(6) MB/(с*поток).
2.2. Поток 1 передал только 7MB первых 3 секунд со скорости 7/3 MB/сек , и потом не передавал ничего. Тогда за все время 100000 секунд, получатель принял суммарно (7Mс + 8МB) = 15 МB данных, средняя скорость общего трансфера по всех потоков была 15/100000 = 0.00015 MB/сек, а "средняя скорость в среднем на поток" 15/100000/2 = 0.000075 MB/(с*поток).
Теперь должно быть очевидным, что ответ зависит от следующих предположений (и если их не уточнять, можно получать какие угодно бессмысленные числа):
- Что именно вычисляется, "средняя скорость общего трансфера вообще" размерности MB/с, или "средняя скорость в среднем на поток" размерности MB/(с*поток). Во втором случае, очевидно нужно еще и поделить среднюю скорость трансфера (по всех потоков), на количество потоков.
- Как взаимно перекрываются те времена, для которых в условии дана передача потоковых данных
- для тех интервалов что даны для потоков, считаем ли скорость каждого потока равномерной во времени
- Как перекрывается с этих времен "время получения данных", для которого именно получатель вычисляет соответную "среднюю скорость"
- Сколько считаем что передавалось (или не передавалось) по потоков, во временах для которых в условия задачи не сказано но все-таки "получатель получал", и они должны быть включены в рассчете соответной "средней скорости"
-- 16.09.2022, 19:45 --Мнение1: нужно сложить все мбит и разделить на все время: (10+8+5+10+20):(7+4+20+1+14)=53:46=1.15 Мбит/с
Мнение 2: Нужно вычислить скорость для каждого потока и выполнить усреднение скоростей: (10:7+8:4+5:20+10:1+20:14):5 = 3.02
Кстати.
"Мнение 1" соответствует следующим предположениям:
- Каждый канал передал свои данные, и ничего больше. Например потоки передавали свои данные по очереди, а в остальное время ничего не передавали (передача была НЕ параллельна) но это не обязательно; существенно то что каждый из каналов передал только "свое" количество данных и ничего больше. "Окно" приема получателя равно суммой всех времен в условии (поэтому и не важно на это время как перекрываются времена передачи потоков), и получатель за это время сумел получить всех данных из всех потоков. На отличие от другого случая, ищется "средняя скорость получения в общем по всех потоков", а НЕ "средняя скорость в среднем на поток" так как НЕ делим на к-во потоков; размерность величины MB/с.
"Мнение 2" соответствует следующим предположениям:
- Скорость каждого потока все время постоянна (при этом очевидно времевой интервал при который принимает получатель, и для которого он вычисляет среднюю скорость, не имеет значения); т.е. для достаточно длинного времени, по любому потоку передастся какое угодно количество данных если скорость потока не нулевая. Ищется не просто "средняя скорость получения в общем по всех потоков", а "средняя скорость в среднем на поток" так как делим на к-во потоков; размерность величины MB/(с * поток)