Questão nº 38
Questão de Tecnologia da Informação · FGV CVM 2024 (nº 38)
A consultora Fernanda encontrou o método Java a seguir em um código de terceiros.
```
//hx é do tipo HashMap<Float,List<Float>>
float w =
hx.entrySet().stream().map(
x-> x.getValue().stream().map(
y -> y x.getKey()))
.map(x->x.reduce(0f, (a,b)->a+b))
.reduce(0f,(a,b)->a+b) /
hx.entrySet().stream().map(
x->x.getKey()x.getValue().size())
.reduce(0f,(a,b)->a+b);
```
Como Fernanda conhece muito bem as operações de map e reduce do Java, ela logo descobriu que w representa:
- Ao desvio padrão do conjunto de valores do HashMap;
- Ba média ponderada dos valores do HashMap, considerando as chaves como peso; (alternativa correta)
- Co produtório do conjunto de valores do HashMap;
- Da obtenção da chave relacionada à lista de maior valor médio;
- Eo somatório dos produtos entre as chaves do HashMap e as listas de valores relacionadas.
Resposta comentada
Gabarito Alternativa B
A média ponderada é um cálculo onde cada valor é multiplicado por um "peso" antes de ser somado, e o resultado final é dividido pela soma de todos esses pesos. No Java, as operações de map transformam elementos de um fluxo, enquanto reduce os combina em um único resultado.
- (A) Incorreta: O desvio padrão envolve cálculos de média, diferenças ao quadrado e raiz quadrada, operações que não são realizadas neste código.
- (B) Correta: O código calcula a média ponderada. O numerador soma o produto de cada valor (
y) pela chave (x.getKey()) à qual ele está associado (atuando como peso). O denominador soma os pesos, que são as chaves (x.getKey()) multiplicadas pela quantidade de vezes que elas são aplicadas (o tamanho da listax.getValue().size()). Isso corresponde exatamente à fórmula da média ponderada: . - (C) Incorreta: Produtório é a multiplicação de todos os elementos. O método
reduce(0f, (a,b)->a+b)realiza uma soma, não uma multiplicação. - (D) Incorreta: O resultado
wé um único valor numérico (float), não uma chave doHashMap. O cálculo não visa identificar a chave de uma lista com maior média. - (E) Incorreta: Esta alternativa descreve de forma imprecisa apenas uma parte do numerador (o somatório dos produtos entre as chaves e os valores das listas), mas
wé o resultado de uma divisão, não apenas um somatório. A armadilha é que, embora o numerador seja um somatório de produtos, a alternativa ignora o denominador e a operação de divisão, que são essenciais para definir o quewrealmente representa.
Fonte: FGV CVM 2024 Analista CVM - TI Sistemas e Desenvolvimento (Perfil 8) (Caderno Tipo 1). Reproduzida para fins de estudo.