Data una serie di numeri per gli eventi X e Y, calcolare il coefficiente di correlazione di Pearson. La probabilità di ciascun evento è uguale, quindi i valori previsti possono essere calcolati semplicemente sommando ogni serie e dividendo per il numero di prove.
Ingresso
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
Produzione
0.769
Il codice più corto vince. L'input può essere di stdin o arg. L'output avverrà tramite stdout.
Modifica: le funzioni incorporate non dovrebbero essere consentite (ad es. Valore atteso calcolato, varianza, deviazione, ecc.) Per consentire una maggiore diversità nelle soluzioni. Tuttavia, sentiti libero di dimostrare un linguaggio che ben si adatta al compito usando builtins (per la mostra).
Basato sull'idea di David per l'input per Mathematica (86 caratteri con media incorporata)
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
Battiscopa usando la nostra media (101 caratteri)
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@#&