Dada uma série de números para os eventos X e Y, calcule o coeficiente de correlação de Pearson. A probabilidade de cada evento é igual; portanto, os valores esperados podem ser calculados simplesmente somando cada série e dividindo pelo número de tentativas.
Entrada
1 6.86
2 5.92
3 6.08
4 8.34
5 8.7
6 8.16
7 8.22
8 7.68
9 12.04
10 8.6
11 10.96
Resultado
0.769
O menor código vence. A entrada pode ser feita por stdin ou arg. A saída será por stdout.
Editar: Funções internas não devem ser permitidas (ou seja, valor esperado calculado, variação, desvio, etc.) para permitir mais diversidade nas soluções. No entanto, sinta-se à vontade para demonstrar um idioma adequado para a tarefa usando os recursos internos (para exibição).
Com base na idéia de David para entrada no Mathematica (86 caracteres usando a média incorporada)
m=Mean;x=d[[All,1]];y=d[[All,2]];(m@(x*y)-m@x*m@y)/Sqrt[(m@(x^2)-m@x^2)(m@(y^2)-m@y^2)]
m = Mean;
x = d[[All,1]];
y = d[[All,2]];
(m@(x*y) - m@x*m@y)/((m@(x^2) - m@x^2)(m@(y^2) - m@y^2))^.5
Contornando usando nossa própria média (101 caracteres)
m=Total[#]/Length[#]&;x=d[[All,1]];y=d[[All,2]];(m@(x*y)-m@x*m@y)/((m@(x^2)-m@x^2)(m@(y^2)-m@y^2))^.5
m = Total[#]/Length[#]&;
x = d[[All,1]];
y = d[[All,2]];
(m@(x*y)-m@x*m@y)/((m@(x^2)-m@x^2)(m@(y^2)-m@y^2))^.5
m=Total@#/Length@#&