Étant donné une série de nombres pour les événements X et Y, calculez le coefficient de corrélation de Pearson. La probabilité de chaque événement est égale, de sorte que les valeurs attendues peuvent être calculées en additionnant simplement chaque série et en divisant par le nombre d'essais.
Contribution
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
Production
0.769
Le code le plus court gagne. L'entrée peut se faire par stdin ou arg. La sortie se fera par sortie standard.
Modifier: les fonctions intégrées ne doivent pas être autorisées (c'est-à-dire la valeur attendue calculée, la variance, l'écart, etc.) pour permettre une plus grande diversité de solutions. Cependant, n'hésitez pas à démontrer un langage qui convient bien à la tâche à l'aide de builtins (pour exposition).
Basé sur l'idée de David pour l'entrée pour Mathematica (86 caractères utilisant la moyenne intégrée)
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
Plinthe en utilisant notre propre moyenne (101 caractères)
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@#&