Sua tarefa é pegar uma matriz de números e um número real e retornar o valor nesse ponto da matriz. As matrizes começam em e são contadas em intervalos . O fato é que, na verdade, vamos interpolar entre elementos, dado o "índice". Como um exemplo:
Index: 1π 2π 3π 4π 5π 6π
Array: [ 1.1, 1.3, 6.9, 4.2, 1.3, 3.7 ]
Como é , temos que fazer a trigonometria obrigatória; portanto, usaremos a interpolação de cosseno usando a seguinte fórmula:
Onde:
- é a entrada "index"
- é o valor do elemento imediatamente antes do "índice"
- é o valor do elemento imediatamente após o "índice"
- toma seu ângulo em radianos
Exemplo
Dado [1.3, 3.7, 6.9], 5.3:
O Índice 5.3 está entre e , então 1.3 será usado before
e 3.7 será usado after
. Colocando na fórmula, obtemos:
Que sai para 3.165
Notas
- Entrada e saída podem estar em qualquer formato conveniente
- Você pode assumir que o número de entrada é maior que e menor que
array length
* - Você pode assumir que a matriz de entrada terá pelo menos 2 elementos.
- Seu resultado deve ter pelo menos duas casas decimais de precisão, ter uma precisão de 0,05 e suportar números de até 100 para essa precisão / exatidão. (flutuadores de precisão única são mais que suficientes para atender a esse requisito)
Golfe feliz!